Je voudrais faire un CoCreateInstance d'une interface IStream et je voudrais connaître son class identifier, je ne le trouve pas dans OBJIDL.h (là où est défini IStream).
Merci
Je voudrais faire un CoCreateInstance d'une interface IStream et je voudrais connaître son class identifier, je ne le trouve pas dans OBJIDL.h (là où est défini IStream).
Merci
Mon code est le suivant :
Mais j'aimerais bien connaître la valeur de clsid à passer en paramètre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CoCreateInstance (clsid, NULL, CLSCTX_INPROC_SERVER, IID_IStream, (LPVOID FAR*)&m_Stream);
En regardant de plus près dans le .h, j'ai :
Et je pense que 0000000c-0000-0000-C000-000000000046 est le class identifier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 EXTERN_C const IID IID_IStream; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0000000c-0000-0000-C000-000000000046") IStream : public ISequentialStream {
Seulement, je n'arrive pas à affecter cette valeur au clsid.
clsid est de type GUID, c'est-à-dire :
Et je n'arribve pas à affecter cette valeur 0000000c-0000-0000-C000-000000000046 dans cette structure, c'est notamment le BYTE[8]qui me gêne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 typedef struct _GUID { // size is 16 DWORD Data1; WORD Data2; WORD Data3; BYTE Data4[8]; } GUID;
Merci de me dire si je ne fais pas fausse route et dans le cas contraîre s'il existe une méthode pour récupérer le CLSID d'une interface COM (ici IStream).
Merci
Pour ma part lorsque je cree un stream je fais :
ensuite je peut le remplir avec le buffer que j'ai créé avec la methode write.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 IStream* l_sStream; CreateStreamOnHGlobal(NULL, TRUE, &l_sStream);
Partager