2010-12-29 2 views
0

Je suis assez nouveau dans le monde ATL.Pointer to Pointer dans COM/ATL

Comment puis-je déclarer un pointeur sur un pointeur dans ATL. En fait j'ai un handle que je veux passer par adresse pour fonctionner. Comme indiqué ci-dessous

STDMETHODIMP Function(HANDLE* hHC) //HANDLE declared as void * so actual type is void ** 

OU

STDMETHODIMP Function(LONG **hHC) 

et que vous voulez accéder à cette fonction du client VB.

+0

Quelle version de Visual Basic est le "client VB"? C'est assez différent entre VB classique et VB.NET –

+0

J'utilise VS 2008 non VS 6.0. – Imran

+0

Publiez la déclaration dans le fichier .idl. –

Répondre

0

Si vous prenez un pointeur vers un type WinAPI représenté comme un HANDLE, qui se trouve être un pointeur, utilisez un HANDLE *. Si vous prenez un pointeur vers un pointeur long, utilisez un LONG **. Il n'y a aucune raison de mélanger ces types ou de les utiliser dans le même but, car ils ne sont pas identiques ou interchangeables.

+0

Merci j'ai fait la même chose que vous avez mentionné. Maintenant, comment puis-je accéder à cette fonction à partir du client VB. – Imran

+0

@Imran: Comment diable devrais-je savoir? Vous avez posé une question C++. – Puppy

+0

My Mistake, j'ai oublié d'ajouter une balise C++. – Imran