Choose another language: English

Project details (dll for the windows explorer) (deprecated)

Project details (dll for the windows explorer) (deprecated)

Postby alpha_one_x86 » Thu Jul 30, 2009 4:20 pm

Step for create plugin for the windows explorer.

Step for create simple plugin:
- Create plugin which intercept the copy of windows, via COM by example.
- When the event of the copy is received, the dll need send the copy to do in repect the protocol forum-english-catchcopy/project-details-protocol-v0001-t196.html (using of API forum-english-catchcopy/project-details-api-t205.html recommended), the named pipe is "advanced-copier-[user]", where [user] is the user name encoded in hexa in little endian, by example for the user name "user" the string encoded from WCHAR is "7500730065007200"
- Inject/load the dll in the system, en c:
Code: Select all
HRESULT RegisterShellExtDll(LPCTSTR lpszPath, bool bRegister)
{
   // first try - load dll and register it manually.
   HRESULT hResult = S_OK;
      hResult = S_FALSE;
      // try with regsvr32
      SHELLEXECUTEINFO sei;
      memset(&sei, 0, sizeof(sei));
      sei.cbSize = sizeof(sei);
      sei.fMask = SEE_MASK_UNICODE;
      sei.lpVerb = _T("runas");
      sei.lpFile = _T("regsvr32.exe");
      CString strParams;
      if(bRegister)
         strParams = CString(_T(" \"")) + lpszPath + CString(_T("\""));
      else
         strParams = CString(_T("/u \"")) + lpszPath + CString(_T("\""));
      sei.lpParameters = strParams;
      sei.nShow = SW_SHOW;

      if(!ShellExecuteEx(&sei))
         hResult = E_FAIL;

   return hResult;
}

or in Qt:
Code: Select all
bool RegisterShellExtDll(QString dllPath, bool bRegister)
{
   QStringList arguments;
   arguments.append("/s");
   if(!bRegister)
      arguments.append("/s");
   arguments.append(dllPath);
   return !QProcess::execute("regsvr32",arguments);
}

or by commmand line:
Code: Select all
regsvr32.exe thedll.dll
Enjoy ultracopier :)
alpha_one_x86
Site Admin
 
Posts: 34
Joined: Sun Oct 26, 2008 9:09 am

Return to English



cron