Cómo abrir la sección de perfil global

Seleccione idioma Seleccione idioma
Id. de artículo: 188482 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo proporciona código que muestra cómo abrir la sección de perfil global y recuperar una de las propiedades que existen en esta sección. También proporciona una lista completa de propiedades que existen en la sección de perfil global. La clave es solicitar la sección de perfil tiene pbGlobalProfileSectionGuid para su identificador único. Esto es una constante definida en el archivo Edkmdb.h.

Más información

Puede ser necesario recuperar o modificar los valores de propiedades que existen en la sección de perfil global de un perfil de interfaz de programación de aplicaciones de mensajería (MAPI). Existe una sección de perfil global para cada perfil que utiliza el servicio de mensajería de Microsoft Exchange. Este "sección global" se utiliza para almacenar datos comunes más secciones individuales para el proveedor de transporte, proveedor de un almacén para el almacén público, proveedor de un almacén para el usuario y proveedor de un almacén para cada buzón adicional a la que el usuario tiene acceso de delegado.

El código siguiente es un ejemplo de cómo abrir la sección de perfil global de un perfil MAPI y cómo extraer la propiedad PR_PROFILE_HOME_SERVER:

Código de ejemplo

   #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;
      }
				
Nota: Asegúrese de incluir las siguientes bibliotecas en el proceso de vinculación:
Kernel32.lib User32.lib, Msvcrt.lib, Mapi32.lib, Edkguid.lib, Edkdebug.lib Edkutils.lib, Edkmapi.lib.
También deberá activar la opción para omitir las bibliotecas predeterminadas en la configuración general del proyecto del proceso de vínculo. Para ello, elija Configuración en el menú proyecto, haga clic en la ficha vínculo, establezca el cuadro categoría en general y que seleccione la opción deseada.

Ésta es una lista de propiedades que existen en la sección de perfil global:
  • 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
Lea el Kit de desarrolladores de software de plataforma para obtener más información sobre estas y otras propiedades.

Propiedades

Id. de artículo: 188482 - Última revisión: jueves, 18 de agosto de 2005 - Versión: 2.5
La información de este artículo se refiere a:
  • Microsoft Office Outlook 2007
  • Microsoft Exchange Development Kit 5.5
  • Microsoft Exchange Development Kit 5.5
  • Microsoft Messaging Application Programming Interface
Palabras clave: 
kbmt kbapi kbhowto kbmsg KB188482 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 188482

Enviar comentarios

 

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