現在オフラインです。再接続するためにインターネットの接続を待っています

Microsoft Outlook で Mapisvc.inf ファイルの正しいパスを見つける方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

概要
Microsoft Outlook では、Mapistub.dll ファイル内に、Mapisvc.inf ファイルのパスを見つけるための FGetComponentPath 関数があります。この資料では、「詳細情報」のコード サンプルを使用して、Mapisvc.Inf ファイルのパスを見つける方法について説明します。

Microsoft Outlook 2000 より前のバージョンでは、Win32 API の GetSystemDirectory 関数によって返されるように、Mapisvc.inf ファイルは常にシステム ディレクトリの下にインストールされていました。
詳細
: 次のコード サンプルは、Outlook の以前の全バージョンとの下位互換性があります。次のコード サンプルでは、Mapisvc.inf ファイルがシステム ディレクトリの下にあるかどうかに関係なく、Mapisvc.inf ファイルのパスが検索されます。
typedef BOOL (STDAPICALLTYPE FGETCOMPONENTPATH)(LPSTR szComponent, LPSTR szQualifier, LPSTR szDllPath, DWORD cchBufferSize, BOOL fInstall);typedef FGETCOMPONENTPATH FAR * LPFGETCOMPONENTPATH;    /////////////////////////////////////////////////////////////////////////////// // Function name    : InitMAPIDir// Description      : For Outlook 2000 compliance. This will get the correct path to the//                  : MAPISVC.INF file.// Return type      : void // Argument         : LPSTR szMAPIDir - Buffer to hold the path to the MAPISVC file.//                  : ULONG cchINIFileName - size of szMAPIDirvoid InitMAPIDir(LPSTR szINIFileName, ULONG cchINIFileName){    UINT uiRet = 0;    CHAR szSystemDir[MAX_PATH+1] = {0};    // Get the system directory path    // (mapistub.dll and mapi32.dll reside here)    uiRet = GetSystemDirectoryA(szSystemDir, MAX_PATH);    if(uiRet > 0)    {        HRESULT hRes = S_OK;        CHAR szDLLPath[MAX_PATH+1] = {0};        hRes = StringCchPrintfA(szDLLPath, MAX_PATH+1, "%s\\%s",             szSystemDir, "mapistub.dll");        if(SUCCEEDED(hRes))        {            LPFGETCOMPONENTPATH pfnFGetComponentPath = NULL;            HMODULE hmodStub = 0;            HMODULE hmodMapi32 = 0;            // Load mapistub.dll            hmodStub = LoadLibraryA(szDLLPath);            if(hmodStub)            {                   // Get the address of FGetComponentPath from the mapistub                pfnFGetComponentPath = (LPFGETCOMPONENTPATH)GetProcAddress(                    hmodStub, "FGetComponentPath");            }            // If we didn't get the address of FGetComponentPath            // try mapi32.dll            if(!pfnFGetComponentPath)            {                hRes = StringCchPrintfA(szDLLPath, MAX_PATH+1, "%s\\%s",                     szSystemDir, "mapi32.dll");                if(SUCCEEDED(hRes))                {                    // Load mapi32.dll                    hmodMapi32 = LoadLibraryA(szDLLPath);                    if(hmodMapi32)                    {                        // Get the address of FGetComponentPath from mapi32                        pfnFGetComponentPath = (LPFGETCOMPONENTPATH)GetProcAddress(                            hmodMapi32, "FGetComponentPath");                    }                }            }            BOOL bRet = FALSE;            if(pfnFGetComponentPath)            {                // Now that we have the address of FGetComponentPath                // Let's call it with the GUID for mapisvc.inf                bRet = pfnFGetComponentPath(                    "{473FF9A0-D659-11D1-A4B2-006008AF820E}",                    NULL, szINIFileName, cchINIFileName, TRUE);             }            // If FGetComponentPath returns FALSE or if            // it returned nothing, or if we never found an            // address of FGetComponentPath, then            // just default to the system directory            if(!bRet || szINIFileName[0] == '\0')            {                hRes = StringCchPrintfA(szINIFileName, cchINIFileName,                    "%s\\%s", szSystemDir, "mapisvc.inf");            }            if(hmodMapi32)                FreeLibrary(hmodMapi32);            if(hmodStub)                FreeLibrary(hmodStub);        }    }}
Outlook 2000 OL2K OL2000 Outlook2000 MAPISVC.INF IMsgServiceAdmin kbGrpMsg kbMsg kbMAPI kbMAPI100 kbOutlook97 kbOutlook98
プロパティ

文書番号:229700 - 最終更新日: 11/04/2005 07:52:00 - リビジョン: 5.1

Microsoft Office Outlook 2003, Microsoft Outlook 2002 Standard Edition, Microsoft Outlook 2000 Standard Edition, Microsoft Messaging Application Programming Interface

  • kbhowto kbmsg kbfaq KB229700
フィードバック
var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" body>