// MessageFile.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" // RG ---------- Part of message file registration ------------- static CHAR s_pwszEventSource[] = "IISSCOv50"; HINSTANCE g_hDllInst; CHAR c_szMAPS[11] = "IISSCOv50"; //-------------- end RG ----------------------------------------- BOOL APIENTRY DllMain( HINSTANCE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { g_hDllInst = hModule; return true; } ///////////////////////////////////////////////////////////////////////////// // DllRegisterServer - Adds entries to the system registry STDAPI DllRegisterServer(void) { // -------Added by to register message file ----------------------- HRESULT hr = E_FAIL; TCHAR szModulePath[200]; DWORD cPathLen, dwData; LONG lRes; HKEY hkey = NULL, hkApp = NULL; // RG - This returns full filename and path to this DLL. I just want the directory cPathLen = GetModuleFileName(g_hDllInst, szModulePath, sizeof(szModulePath)/sizeof(TCHAR)); if (cPathLen == 0) goto LocalCleanup; lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\", 0, KEY_ALL_ACCESS, &hkey); if (lRes != ERROR_SUCCESS) goto LocalCleanup; lRes = RegCreateKeyEx(hkey, c_szMAPS, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkApp, NULL); if (lRes != ERROR_SUCCESS) goto LocalCleanup; lRes = RegSetValueEx(hkApp, "EventMessageFile", 0, REG_EXPAND_SZ, (LPBYTE) szModulePath, (sizeof(szModulePath[0]) * cPathLen) + 1); if (lRes != ERROR_SUCCESS) goto LocalCleanup; dwData = (EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | EVENTLOG_INFORMATION_TYPE); lRes = RegSetValueEx(hkApp, "TypesSupported", 0, REG_DWORD, (LPBYTE) &dwData, sizeof(dwData)); if (lRes != ERROR_SUCCESS) goto LocalCleanup; hr = S_OK; LocalCleanup: if (hkApp) { RegCloseKey(hkApp); } if (hkey) { // Cleanup on complete failure if (FAILED(hr)) { RegDeleteKey(hkey, c_szMAPS); } RegCloseKey(hkey); } return hr; //----------- End of Register IISScoMessageFile.dll ----------- //return TRUE; } STDAPI DllUnregisterServer(void) { return S_OK; } void __declspec( dllexport ) dummyfunc( void ) { return ; }