mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 07:03:10 +00:00
[SENDMAIL][ZIPFLDR][MYDOCS] Fix creation of SendTo files (#2616)
- Improve and move SendTo files creation code and timing. - Delete IDS_DESKLINK of shell32. - Add IDS_DESKLINK into sendmail. CORE-16924
This commit is contained in:
parent
66e647084d
commit
a48aa21102
52 changed files with 230 additions and 198 deletions
|
@ -15,6 +15,47 @@ END_OBJECT_MAP()
|
|||
|
||||
CComModule gModule;
|
||||
LONG g_ModuleRefCnt = 0;
|
||||
HINSTANCE g_hModule;
|
||||
|
||||
static BOOL
|
||||
CreateEmptyFile(LPCWSTR pszFile)
|
||||
{
|
||||
HANDLE hFile;
|
||||
hFile = CreateFileW(pszFile, GENERIC_WRITE, FILE_SHARE_READ, NULL,
|
||||
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (hFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
CloseHandle(hFile);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static HRESULT
|
||||
CreateSendToDeskLink(LPCWSTR pszSendTo)
|
||||
{
|
||||
WCHAR szTarget[MAX_PATH], szSendToFile[MAX_PATH];
|
||||
|
||||
LoadStringW(g_hModule, IDS_DESKLINK, szTarget, _countof(szTarget));
|
||||
StringCbCatW(szTarget, sizeof(szTarget), L".DeskLink");
|
||||
|
||||
StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
|
||||
PathAppendW(szSendToFile, szTarget);
|
||||
|
||||
if (!CreateEmptyFile(szSendToFile))
|
||||
{
|
||||
ERR("CreateEmptyFile('%ls')\n", szSendToFile);
|
||||
return E_FAIL;
|
||||
}
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT
|
||||
GetDefaultUserSendTo(LPWSTR pszPath)
|
||||
{
|
||||
return SHGetFolderPathW(NULL, CSIDL_SENDTO, INVALID_HANDLE_VALUE,
|
||||
SHGFP_TYPE_DEFAULT, pszPath);
|
||||
}
|
||||
|
||||
STDAPI DllCanUnloadNow(void)
|
||||
{
|
||||
|
@ -40,6 +81,11 @@ STDAPI DllRegisterServer(void)
|
|||
if (FAILED_UNEXPECTEDLY(hr))
|
||||
return hr;
|
||||
|
||||
WCHAR szSendTo[MAX_PATH];
|
||||
hr = GetDefaultUserSendTo(szSendTo);
|
||||
if (SUCCEEDED(hr))
|
||||
CreateSendToDeskLink(szSendTo);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -117,6 +163,7 @@ STDAPI_(BOOL) DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID fImpLoad)
|
|||
TRACE("%p 0x%x %p\n", hInstance, dwReason, fImpLoad);
|
||||
if (dwReason == DLL_PROCESS_ATTACH)
|
||||
{
|
||||
g_hModule = hInstance;
|
||||
gModule.Init(ObjectMap, hInstance, NULL);
|
||||
DisableThreadLibraryCalls(hInstance);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue