예제 #1
0
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;
}
예제 #2
0
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
예제 #3
0
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;
}