Méthode IClassFactory2 ::CreateInstanceLic (ocidl.h)
Crée une instance de l’objet sous licence pour la clé de licence spécifiée. Cette méthode est le seul moyen possible de créer un objet sur une machine sans licence.
Syntaxe
HRESULT CreateInstanceLic(
[in] IUnknown *pUnkOuter,
[in] IUnknown *pUnkReserved,
[in] REFIID riid,
[in] BSTR bstrKey,
[out] PVOID *ppvObj
);
Paramètres
[in] pUnkOuter
Pointeur vers l’interface IUnknown de contrôle sur l’inconnu externe si cet objet est créé dans le cadre d’un agrégat. Si l’objet ne fait pas partie d’un agrégat, ce paramètre doit avoir la valeur NULL.
[in] pUnkReserved
Ce paramètre n’est pas utilisé et doit avoir la valeur NULL.
[in] riid
Référence à l’identificateur de l’interface à utiliser pour communiquer avec l’objet nouvellement créé.
[in] bstrKey
Clé de licence d’exécution précédemment obtenue à partir de IClassFactory2 ::RequestLicKey qui est nécessaire pour créer un objet.
[out] ppvObj
Adresse de la variable pointeur qui reçoit le pointeur d’interface demandé dans riid. Une fois le retour réussi, *ppvObj contient le pointeur d’interface demandé. Si une erreur se produit, l’implémentation doit définir *ppvObj sur NULL.
Valeur retournée
Cette méthode peut retourner les valeurs de retour standard E_INVALIDARG, E_OUTOFMEMORY et E_UNEXPECTED, ainsi que les valeurs suivantes.
Code de retour | Description |
---|---|
|
La licence a été créée. |
|
Cette méthode n’est pas implémentée, car les objets peuvent uniquement être créés sur des machines sous licence complète via IClassFactory ::CreateInstance. |
|
Un pointeur transmis dans bstrKey ou ppvObj n’est pas valide. Par exemple, il peut être NULL. |
|
L’objet peut être créé (et la clé de licence est valide), sauf que l’objet ne prend pas en charge l’interface spécifiée par riid. |
|
Le paramètre pUnkOuter n’est pas NULL, mais cette classe d’objet ne prend pas en charge l’agrégation. |
|
La clé fournie dans bstrKey n’est pas une clé de licence valide. |
Remarques
Notes aux implémenteurs
Si la fabrique de classes ne fournit pas de clé de licence (autrement dit, IClassFactory2 ::RequestLicKey retourne E_NOTIMPL et que le membre fRuntimeKeyAvail dans LICINFO a la valeur FALSE dans IClassFactory2 ::GetLicInfo), cette méthode peut également retourner E_NOTIMPL. Dans ce cas, la fabrique de classes implémente IClassFactory2 simplement pour spécifier si la machine est sous licence via le membre fLicVerified de LICINFO.Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | ocidl.h |