Advertisement
Guest User

Untitled

a guest
Nov 27th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1.  
  2. #define _ATL_ATTRIBUTES 1
  3. #include
  4. #include
  5. #include
  6. #include
  7. #include
  8. [module(name="test")];
  9. [ object, uuid("00000000- 0000-0000-0000-000000000001"), library_block ]
  10. __interface IFace {
  11. [ id(0) ] int int_data;
  12. [ id(5) ] BSTR bstr_data;
  13. };
  14. [ coclass, uuid("00000000- 0000-0000-0000-000000000002") ]
  15.  
  16. class MyClass : public IFace {
  17. private:
  18. int m_i;
  19. BSTR m_bstr;
  20. public:
  21. MyClass() {
  22. m_i = 0;
  23. m_bstr = 0;
  24. }
  25.  
  26. ~MyClass() {
  27. if (m_bstr)
  28. ::SysFreeString(m_bstr);
  29. }
  30.  
  31. int get_int_data() {
  32. return m_i;
  33. }
  34.  
  35. void put_int_data(int _i) {
  36. m_i = _i;
  37. }
  38.  
  39. BSTR get_bstr_data() {
  40. BSTR bstr = ::SysAllocString (m_bstr);
  41. return bstr;
  42. }
  43.  
  44. void put_bstr_data(BSTR bstr) {
  45. if (m_bstr) ::SysFreeString(m_bstr);
  46. m_bstr = ::SysAllocString(bstr);
  47. }
  48. };
  49.  
  50. int main() {
  51. _bstr_t bstr("Testing"); CoInitialize(NULL);
  52. CComObject* p;
  53. CComObject::CreateInstance(&p);
  54. p->int_data = 100;
  55. printf_s("p->int_data = %d\n", p->int_data);
  56. p->bstr_data = bstr;
  57. printf_s("bstr_data = %S\n", p->bstr_data);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement