COM.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include "il2cpp-config.h"
  3. #include "il2cpp-windowsruntime-types.h"
  4. namespace il2cpp
  5. {
  6. namespace os
  7. {
  8. class COM
  9. {
  10. public:
  11. static il2cpp_hresult_t CreateInstance(const Il2CppGuid& clsid, Il2CppIUnknown** object);
  12. static il2cpp_hresult_t CreateFreeThreadedMarshaler(Il2CppIUnknown* outer, Il2CppIUnknown** marshal);
  13. // variant
  14. static void VariantInit(Il2CppVariant* variant);
  15. static il2cpp_hresult_t VariantClear(Il2CppVariant* variant);
  16. // safe array
  17. static Il2CppSafeArray* SafeArrayCreate(uint16_t type, uint32_t dimension_count, Il2CppSafeArrayBound* bounds);
  18. static il2cpp_hresult_t SafeArrayDestroy(Il2CppSafeArray* safeArray);
  19. static il2cpp_hresult_t SafeArrayAccessData(Il2CppSafeArray* safeArray, void** data);
  20. static il2cpp_hresult_t SafeArrayUnaccessData(Il2CppSafeArray* safeArray);
  21. static il2cpp_hresult_t SafeArrayGetVartype(Il2CppSafeArray* safeArray, uint16_t* type);
  22. static uint32_t SafeArrayGetDim(Il2CppSafeArray* safeArray);
  23. static il2cpp_hresult_t SafeArrayGetLBound(Il2CppSafeArray* safeArray, uint32_t dimention, int32_t* bound);
  24. static il2cpp_hresult_t SafeArrayGetUBound(Il2CppSafeArray* safeArray, uint32_t dimention, int32_t* bound);
  25. };
  26. } /* namespace os */
  27. } /* namespace il2cpp*/
  28. #pragma once