Você está offline; aguardando reconexão

Como localizar o caminho correcto para o ficheiro MAPISVC.INF no Microsoft Outlook

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de Abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Aprenda o que isto significa para si e como pode ficar protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Pedíamos-lhe o favor de preencher o formulário existente no fundo desta página caso tenha encontrado erros neste artigo e tenha possibilidade de colaborar no processo de aperfeiçoamento desta ferramenta. Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 229700
Sumário
O Microsoft Outlook expõe a função no ficheiro Mapistub.dll que ajuda a localizar o caminho para o ficheiro MAPISVC.INF. Este artigo descreve como localizar o caminho para o ficheiro MAPISVC.INF, utilizando o exemplo de código na secção " Mais informações ".

Antes do Microsoft Outlook 2000, o ficheiro MAPISVC.INF sempre foi instalado sob o directório do sistema, como devolvido pela função da API Win32 .
Mais Informação
NOTA O exemplo de código que se segue é compatível com todas as versões anteriores do Outlook. O exemplo de código que se segue localiza o caminho para o ficheiro MAPISVC.INF se o ficheiro MAPISVC.INF existe sob o directório do sistema ou não.
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

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 229700 - Última Revisão: 08/25/2005 20:11:00 - Revisão: 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 KbMtpt kbmt
Comentários