Partager via


MSProviderInit

S’applique à : Outlook 2013 | Outlook 2016

Initialise un fournisseur de magasin de messages pour l’opération.

Propriété Valeur
Fichier d’en-tête :
Mapispi.h
Implémenté par :
Fournisseurs de magasins de messages
Appelé par :
MAPI
HRESULT MSProviderInit(
  HINSTANCE hInstance,
  LPMALLOC lpMalloc,
  LPALLOCATEBUFFER lpAllocateBuffer,
  LPALLOCATEMORE lpAllocateMore,
  LPFREEBUFFER lpFreeBuffer,
  ULONG ulFlags,
  ULONG ulMAPIVer,
  ULONG FAR * lpulProviderVer,
  LPMSPROVIDER FAR * lppMSProvider
);

Paramètres

hInstance

[in] Instance de la bibliothèque de liens dynamiques (DLL) du fournisseur de magasins de messages utilisée par MAPI lors de la liaison.

lpMalloc

[in] Pointeur vers un objet allocateur de mémoire exposant l’interface OLE IMalloc . Le fournisseur de magasin de messages peut avoir besoin d’utiliser cette méthode d’allocation lors de l’utilisation de certaines interfaces telles que IStream.

lpAllocateBuffer

[in] Pointeur vers la fonction MAPIAllocateBuffer , à utiliser pour allouer de la mémoire.

lpAllocatePlus

[in] Pointeur vers la fonction MAPIAllocateMore , à utiliser pour allouer de la mémoire supplémentaire.

lpFreeBuffer

[in] Pointeur vers la fonction MAPIFreeBuffer , à utiliser pour libérer de la mémoire.

ulFlags

[in] Masque de bits des indicateurs. L’indicateur suivant peut être défini :

MAPI_NT_SERVICE

Le fournisseur est chargé dans le contexte d’un service Windows, un type spécial de processus sans accès à une interface utilisateur.

ulMAPIVer

[in] Numéro de version de l’interface de fournisseur de services (SPI) utilisée par MAPI. Pour obtenir le numéro de version actuel, consultez le fichier d’en-tête Mapispi.h.

lpulProviderVer

[out] Pointeur vers le numéro de version du SPI utilisé par ce fournisseur de magasin de messages.

lppMSProvider

[out] Pointeur vers un pointeur vers l’objet fournisseur de magasin de messages initialisé.

Valeur renvoyée

S_OK

L'appel a r�ussi et a renvoy� la valeur attendue ou les valeurs.

MAPI_E_VERSION

La version SPI utilisée par MAPI n’est pas compatible avec le SPI utilisé par ce fournisseur.

Remarques

MAPI appelle la fonction de point d’entrée MSProviderInit pour initialiser un fournisseur de magasin de messages après une ouverture de session cliente.

Remarques pour les responsables de l’implémentation

Un fournisseur de magasin de messages doit implémenter MSProviderInit comme fonction de point d’entrée dans la DLL du fournisseur. L’implémentation doit être basée sur le prototype de fonction MSPROVIDERINIT , également spécifié dans MAPISPI.H. MAPI définit MSPROVIDERINIT pour utiliser le type d’appel d’initialisation MAPI standard, STDMAPIINITCALLTYPE, ce qui oblige MSProviderInit à suivre la convention d’appel CDECL. L’avantage de CDECL est que les appels peuvent être tentés même si le nombre de paramètres appelants ne correspond pas au nombre de paramètres définis.

Un fournisseur peut être initialisé plusieurs fois, car il apparaît dans plusieurs profils en utilisation simultanée ou plusieurs fois dans le même profil. Étant donné que l’objet fournisseur contient du contexte, MSProviderInit doit retourner un objet fournisseur différent dans lppMSProvider pour chaque initialisation, même pour plusieurs initialisations dans le même processus.

La DLL du fournisseur ne doit pas être liée à Mapix.dll. Au lieu de cela, il doit utiliser ces pointeurs pour l’allocation ou la désallocation de la mémoire.

Le fournisseur de magasin de messages doit utiliser les fonctions pointées par lpAllocateBuffer, lpAllocateMore et lpFreeBuffer pour la plupart des allocations et désallocations de mémoire. En particulier, le fournisseur doit utiliser ces fonctions pour allouer de la mémoire à utiliser par les applications clientes lors de l’appel d’interfaces objet telles que IMAPIProp ::GetProps et IMAPITable ::QueryRows. Si le fournisseur s’attend également à utiliser l’allocateur de mémoire OLE, il doit appeler la méthode IUnknown ::AddRef de l’objet allocateur vers lequel pointe le paramètre lpMalloc .

Pour plus d’informations sur l’écriture de MSProviderInit, consultez Chargement de fournisseurs de magasins de messages. Pour plus d’informations sur les fonctions de point d’entrée, consultez Implémentation d’une fonction de point d’entrée de fournisseur de services.

Voir aussi

ABProviderInit
IMSProvider : IUnknown
XPProviderInit