Choose another language: 

Project details (dll for the windows explorer) (deprecated)
1 post
• Page 1 of 1
Project details (dll for the windows explorer) (deprecated)
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:
or in Qt:
or by commmand line:
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
1 post
• Page 1 of 1

