com.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #define WIN32_LEAN_AND_MEAN
  2. #include <windows.h>
  3. #include <stdio.h>
  4. #include <unknwn.h>
  5. #include <exdisp.h>
  6. extern "C" {
  7. int bmx_win32_com_IUnknown_QueryInterface(IUnknown * unk, REFIID riid, void ** ppvObj);
  8. int bmx_win32_com_IUnknown_AddRef(IUnknown * unk);
  9. int bmx_win32_com_IUnknown_Release(IUnknown * unk);
  10. GUID * bmx_win32_GUID_new();
  11. void bmx_win32_GUID_free(GUID * guid);
  12. int bmx_win32_IWebBrowser_get_LocationURL(IWebBrowser * browser, BSTR * LocationURL);
  13. int bmx_win32_IWebBrowser_get_LocationName(IWebBrowser * browser, BSTR * LocationName);
  14. int bmx_win32_IWebBrowser_get_Document(IWebBrowser * browser, IDispatch ** disp);
  15. }
  16. int bmx_win32_com_IUnknown_QueryInterface(IUnknown * unk, REFIID riid, void ** ppvObj) {
  17. return unk->QueryInterface(riid, ppvObj);
  18. }
  19. int bmx_win32_com_IUnknown_AddRef(IUnknown * unk) {
  20. return unk->AddRef();
  21. }
  22. int bmx_win32_com_IUnknown_Release(IUnknown * unk) {
  23. return unk->Release();
  24. }
  25. // ********************************************************
  26. GUID * bmx_win32_GUID_new() {
  27. return (GUID *)calloc(1,sizeof(GUID));
  28. }
  29. void bmx_win32_GUID_free(GUID * guid) {
  30. free(guid);
  31. }
  32. // ********************************************************
  33. int bmx_win32_IWebBrowser_get_LocationURL(IWebBrowser * browser, BSTR * LocationURL) {
  34. return browser->get_LocationURL(LocationURL);
  35. }
  36. int bmx_win32_IWebBrowser_get_LocationName(IWebBrowser * browser, BSTR * LocationName) {
  37. return browser->get_LocationName(LocationName);
  38. }
  39. int bmx_win32_IWebBrowser_get_Document(IWebBrowser * browser, IDispatch ** disp) {
  40. return browser->get_Document(disp);
  41. }