J'utilise une bibliotèque qui permet d'envoyer des commande dans un autre programme.
Avec Visual Basic j'ai pas de problème quand j'ajoute la library TLB (dans références).
Par contre pour faire la même chose en c++ c'est une autre histoire, ça marche pas... :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 VISUAL BASIC: Dim GraphicsBuilder As IGraphicsBuilder Set GraphicsBuilder = New GraphicsBuilder.GraphicsBuilder With GraphicsBuilder .Visible = True .PageNew "include", "standard", "normal", 0, True, True End With
évidement j'obtient comme résultat "-1"... bref je pense que ça vient des deux constantes du début, je suis pas sur de savoir les trouver correctement, j'utilise "OLE/COM object viewer" et je tombe sur un code du genre {33A55B2B-55FC-4632-BCF0-4DE3C51FD048} et ensuite j'adapte en mettant des "{}" et des"," . Comment on fait pour être sûr que c'est le bon? que c'est comme ça que l'on doit faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 En VISUAL C++ (6): #include <stdio.h> #include <windows.h> #include <comdef.h> #import "C:\Program Files\Citect\CitectSCADA\Bin\CTDRAW32.TLB" const IID IID_IRadio = {0x33A55B2B,0x55FC,0x4632,{0xBC,0xF0,0x4D,0xE3,0xC5,0x1F,0xD0,0x48}}; const CLSID CLSID_Radio = {0x33A55B2B,0x55FC,0x4632,{0xBC,0xF0,0x4D,0xE3,0xC5,0x1F,0xD0,0x48}}; int good(void) { HRESULT hr; GraphicsBuilder::IGraphicsBuilder* pRadio; // IRadio* pRadio; //_bstr_t strStation("TEST"); hr = CoCreateInstance(CLSID_Radio, // CLSID du composant NULL, // --> Sert pour l'aggrégation ! CLSCTX_ALL, // indique quoi rechercher (dll, exe, distant) IID_IRadio, // interface (void**)&pRadio); // objet retourné if (FAILED(hr)) return -1; // Utilisation du composant ... pRadio->put_Visible(true); pRadio->PageNew("include", "standard", "normal",0,1,1); CoUninitialize(); return 0; } int main(void) { printf("Ca va Marcher\n on y croit...\n"); printf("\nresultat: %i\n",good()); return 0; }
merci d'avance
Partager