HRESULT CreateECF(char* szMCOUPluginFullPath) { // ѕишем файл mcou.ecf HRESULT dwResult = S_OK; char szECFFileName[MAX_PATH+sizeof(ECFFILENAME)] = {0}; if ( SUCCEEDED(GetOutlookPath(szECFFileName, MAX_PATH)) && 0 != strcat(szECFFileName, ECFFILENAME) ) { WRITE_PRIVATE_PROFILE_STRING( "General", "Display Name", szPluginName ); WRITE_PRIVATE_PROFILE_STRING( "General", "Description" , szPluginName ); WRITE_PRIVATE_PROFILE_STRING( "General", "Path", szMCOUPluginFullPath ); WRITE_PRIVATE_PROFILE_STRING( "General", "Entry Point", "1" ); WRITE_PRIVATE_PROFILE_STRING( "General", "Client Version","4.0" ); WRITE_PRIVATE_PROFILE_STRING( "General", "Misc Flags", "NoOptimizeInterfaceMap;MoreContexts" ); WRITE_PRIVATE_PROFILE_STRING( "Exchange Client Compatibility", "Exchange Context Map", "10000111111100" ); // WRITE_PRIVATE_PROFILE_STRING( "Exchange Client Compatibility", "Exchange Interface Map", "11111111" ); WRITE_PRIVATE_PROFILE_STRING( "Application", "Events", "OnStartup;OnShutdown" ); WRITE_PRIVATE_PROFILE_STRING( "Session", "Events", "OnLogon;OnLogoff;OnDelivery" ); WRITE_PRIVATE_PROFILE_STRING( "Property Sheet", "Events", "AddPropSheetPages" ); WRITE_PRIVATE_PROFILE_STRING( "Item", "Events", "OnItemChange;OnCheckNames;OnCheckNamesComplete;OnRead;OnReadComplete;OnWrite;OnWriteComplete;OnSubmit;OnSubmitComplete;OnCommand;OnMenuDropDown;InstallCommands;AddPropSheetPages" ); } return dwResult; }
CString GetOutlookVersionString() { HRESULT hRes = S_OK; if (!pfnMsiProvideQualifiedComponent || !pfnMsiGetFileVersion) return _T(""); int i = 0; CString szOut; for (i = oqcOfficeBegin; i < oqcOfficeEnd; i++) { bool b64 = false; LPTSTR lpszTempPath = GetOutlookPath(g_pszOutlookQualifiedComponents[i], &b64); if (lpszTempPath) { LPTSTR lpszTempVer = NULL; LPTSTR lpszTempLang = NULL; lpszTempVer = new TCHAR[MAX_PATH]; lpszTempLang = new TCHAR[MAX_PATH]; if (lpszTempVer && lpszTempLang) { UINT ret = 0; DWORD dwValueBuf = MAX_PATH; WC_D(ret, pfnMsiGetFileVersion(lpszTempPath, lpszTempVer, &dwValueBuf, lpszTempLang, &dwValueBuf)); if (ERROR_SUCCESS == ret) { szOut.AppendFormat(IDS_OUTLOOKVERSIONSTRING, lpszTempPath, lpszTempVer, lpszTempLang); szOut.AppendFormat(b64 ? IDS_TRUE : IDS_FALSE); szOut.Append(_T("\n")); // STRING_OK } delete[] lpszTempLang; delete[] lpszTempVer; } delete[] lpszTempPath; } } return szOut; } // GetOutlookVersionString
BOOL DeleteECF() { HRESULT dwResult = S_OK; char szECFFileName[MAX_PATH+sizeof(ECFFILENAME)] = {0}; if ( SUCCEEDED(GetOutlookPath(szECFFileName, MAX_PATH)) ) { for ( int i = strlen(szECFFileName)-2; i > 0; i-- ) { if ( szECFFileName[i] == '\\' ) { szECFFileName[i] = '\0'; break; } } DeleteECFFiles(szECFFileName); } return FALSE; }