Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. #include<Windows.h>
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #import "klasanet.tlb" no_namespace
  5.  
  6. DEFINE_GUID(IID_IKlasa, 0x4d764d3c, 0x1139, 0x4743, 0xb5, 0x9e, 0xde, 0x29, 0xad, 0x49, 0xd5, 0xdf);
  7. DEFINE_GUID(CLSID_Klasa, 0xab128831, 0x9f76, 0x46b6, 0x99, 0x33, 0xd3, 0xe6, 0xf3, 0x54, 0x8d, 0x8a);
  8.  
  9. int main() {
  10.  
  11.     bool flag = 0;
  12.     if (flag) {
  13.         HRESULT rc;
  14.         OLECHAR filename[MAX_PATH];
  15.         ITypeLib *tl;
  16.         CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
  17.         // rejestracja
  18.    
  19.         mbstowcs(filename, "klasanet.tlb", sizeof(filename));
  20.         rc = LoadTypeLibEx(filename, REGKIND_REGISTER, &tl);
  21.         if (rc == S_OK) {
  22.             return 0;
  23.         }
  24.     }
  25.  
  26.     printf("starting\n");
  27.     IKlasaN *k;
  28.     HRESULT rv;
  29.     CoInitializeEx(NULL, COINIT_MULTITHREADED);
  30.     //w przypadku serwera w dll-ce (inproc)
  31.     rv = CoCreateInstance(__uuidof(KlasaN), NULL, CLSCTX_ALL, __uuidof(IKlasaN), (void **)&k);
  32.     //w przypadku surrogate i serwera w exeku:
  33.     //rv = CoCreateInstance(CLSID_Klasa, NULL, CLSCTX_LOCAL_SERVER, IID_IKlasa, (void **)&k);
  34.     //printf("res = %08X (%s)\n", rv, rv == S_OK ? "OK" : "bad");
  35.     //if(rv != S_OK) {
  36.     //  printf("error creating instance gle=%08X %d\n", GetLastError(), GetLastError());
  37.     //  CoUninitialize();
  38.     //  return 0;
  39.     //  };
  40.  
  41.     // udało się stworzyć klasę
  42.     long val;
  43.    
  44.     k->Push(1);
  45.     k->Push(2);
  46.     // tylko dla inproc-a
  47.     printf("%d\n", k->Pop(&val));
  48.     printf("%d\n", k->Pop(&val));
  49.  
  50.     //k->Pop(&val); printf("%d\n", val);
  51.     //k->Pop(&val); printf("%d\n", val);
  52.     //k->PopEx(&val);   printf("%d\n", val);
  53.     //rv = k->PopEx(&val); printf("%d\n", val);
  54.     //printf("%08X (%s)\n", rv, rv == E_FAIL ? "E_FAIL" : "other");
  55.  
  56.     // po użyciu trzeba zwolnić
  57.     k->Release();
  58.  
  59.     printf("done\n");
  60.     CoUninitialize();
  61.    
  62.     return 0;
  63.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement