如何打开全局配置部分

文章翻译 文章翻译
文章编号: 188482 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文提供了演示如何打开全局配置部分和检索的一个属性存在于此部分中的代码。它还提供了全面的全局配置文件部分中存在的属性的列表。此密钥是请求具有唯一标识符的 pbGlobalProfileSectionGuid 配置文件部分。这是一个 Edkmdb.h 文件中定义的常量。

更多信息

它可能需要检索或修改的消息处理应用程序编程接口 (MAPI) 配置文件的全局配置文件部分中存在的属性的值。全局配置文件节的每个配置文件使用 Microsoft Exchange 消息服务的存在。此"全局部分"用来存储常用的数据加上传输提供程序、 为用户的一个存储提供程序、 为公共存储区的一个存储提供程序和每个其他邮箱的用户具有代理访问权限的一个存储提供程序的各个部分。

下面的代码是如何打开全局的配置文件节的 MAPI 配置文件以及如何提取 PR_PROFILE_HOME_SERVER 属性的示例:

示例代码

   #include <objbase.h>
   #include <mapix.h>
   #include <mapidefs.h>
   #include <mapiguid.h>
   #include <edk.h>
   #include <edkmdb.h>


   HRESULT GetServerName()
   {
     HRESULT hRes = S_OK;   // HRESULT returned by this method
     LPPROFADMIN pAdminProfiles = NULL; // Pointer to IProfAdmin object
     LPSERVICEADMIN pSvcAdmin = NULL;  // Pointer to IServiceAdmin object
     LPPROFSECT pGlobalProfSect = NULL; // Pointer to IProfSect object
     LPSPropValue pProps = NULL; // Pointer to PropValue
                                // PR_PROFILE_HOME_SERVER
     char szServerName[256]; // String that will contain the server name
     // If your app doesn't already initialize the MAPI subsystem,
     // do it now.
     if ( FAILED ( hRes = MAPIInitialize ( NULL ) ) )
        return hRes;

     // Get a Profile admin object
     if ( FAILED ( hRes = MAPIAdminProfiles ( 0L, &pAdminProfiles ) ) )
        goto CleanUp;

     // Get a ServiceAdmin object
     if ( FAILED ( hRes = pAdminProfiles -> AdminServices (
                                           "<profile name>",
                                           NULL,
                                           0L,  // Your app's window handle
                                           0L,
                                           &pSvcAdmin ) ) )
       goto CleanUp;

      // Get the Global Profile Section by calling
      // IServiceAdmin::OpenProfileSection use pbGlobalProfileSectionGuid
      // defined in EDKMDB.H as the entry ID to request
      // The default return is an IProfSect interface.
      if ( FAILED ( hRes = pSvcAdmin -> OpenProfileSection (
                                  (LPMAPIUID)pbGlobalProfileSectionGuid,
                                  NULL,
                                  0L,
                                  &pGlobalProfSect ) ) )
         goto CleanUp;


      // Call HrGetOneProp to get PR_PROFILE_HOME_SERVER
      if ( FAILED ( hRes = HrGetOneProp ( pGlobalProfSect,
                                          PR_PROFILE_HOME_SERVER,
                                          &pProps ) ) )
         goto CleanUp;


      // Set Server name pointer to string equal to value returned from
      // HrGetOneProp
      strcpy ( szServerName, "PR_PROFILE_HOME_SERVER == " );
      strcat ( szServerName, pProps -> Value.lpszA );

      // Replace window handle param with your application's window handle
      MessageBox ( 0L, szServerName, "Exchange Server Name", MB_OK );

      CleanUp:

      // Free all memory allocated by any MAPI calls

      if ( NULL != pAdminProfiles )
         pAdminProfiles -> Release ();

      if ( NULL != pSvcAdmin )
         pSvcAdmin -> Release ( );

      if ( NULL != pGlobalProfSect )
         pGlobalProfSect -> Release ( );

      if ( NULL != pProps )
         MAPIFreeBuffer ( &pProps );

      pSvcAdmin = NULL;
      pGlobalProfSect = NULL;
      pProps = NULL;
      pAdminProfiles = NULL;

      // Return the HRESULT to the calling function
      return hRes;
      }
				
注: 一定要包括在链接过程中的以下库:
Kernel32.lib、 User32.lib、 Msvcrt.lib、 Mapi32.lib、 Edkguid.lib,Edkutils.lib,Edkmapi.lib,Edkdebug.lib。
您还需要检查该选项,以忽略默认库中的链接过程常规项目设置。若要执行此操作从项目菜单中选择设置,单击链接选项卡,设置类别框中为常规和比选择所需的选项。

以下是在全局配置部分中存在的属性的列表:
  • PR_PROFILE_VERSION
  • PR_PROFILE_CONFIG_FLAGS
  • PR_PROFILE_HOME_SERVER
  • PR_PROFILE_HOME_SERVER_DN
  • PR_PROFILE_HOME_SERVER_ADDRS
  • PR_PROFILE_USER
  • PR_PROFILE_CONNECT_FLAGS
  • PR_PROFILE_TRANSPORT_FLAGS
  • PR_PROFILE_UI_STATE
  • PR_PROFILE_UNRESOLVED_NAME
  • PR_PROFILE_UNRESOLVED_SERVER
  • PR_PROFILE_BINDING_ORDER
  • PR_PROFILE_MAX_RESTRICT
  • PR_PROFILE_AB_FILES_PATH
  • PR_PROFILE_OFFLINE_STORE_PATH
  • PR_PROFILE_OFFLINE_INFO
  • PR_PROFILE_ADDR_INFO
  • PR_PROFILE_OPTIONS_DATA
  • PR_PROFILE_SECURE_MAILBOX
  • PR_DISABLE_WINSOCK
请阅读有关这些和其他属性的详细信息平台软件开发人员工具包。

属性

文章编号: 188482 - 最后修改: 2005年8月18日 - 修订: 2.5
这篇文章中的信息适用于:
  • Microsoft Office Outlook 2007
  • Microsoft Exchange 开发工具包 5.5
  • Microsoft Exchange 开发工具包 5.5
  • Microsoft Messaging Application Programming Interface
关键字:?
kbmt kbapi kbhowto kbmsg KB188482 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 188482
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com