Changeset 60764 in vbox
- Timestamp:
- Apr 29, 2016 2:11:22 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 106959
- Location:
- trunk/src/VBox/Main/src-server/win
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/VBox/Main/src-server/win/VBoxComEvents.cpp ¶
r55401 r60764 6 6 7 7 /* 8 * Copyright (C) 2010 Oracle Corporation8 * Copyright (C) 2010-2016 Oracle Corporation 9 9 * 10 10 * This file is part of VirtualBox Open Source Edition (OSE), as … … 32 32 { 33 33 HRESULT hr = 0; 34 C ComPtr<ITypeLib>ptlib;35 C ComPtr<ITypeInfo>ptinfo;34 ComPtr<ITypeLib> ptlib; 35 ComPtr<ITypeInfo> ptinfo; 36 36 int i; 37 37 38 38 39 hr = ::LoadRegTypeLib(LIBID_VirtualBox, kTypeLibraryMajorVersion, kTypeLibraryMinorVersion, LOCALE_SYSTEM_DEFAULT, &ptlib);39 hr = ::LoadRegTypeLib(LIBID_VirtualBox, kTypeLibraryMajorVersion, kTypeLibraryMinorVersion, LOCALE_SYSTEM_DEFAULT, ptlib.asOutParam()); 40 40 if (FAILED(hr)) 41 41 return hr; 42 42 43 hr = ptlib->GetTypeInfoOfGuid(aGuid.ref(), &ptinfo);43 hr = ptlib->GetTypeInfoOfGuid(aGuid.ref(), ptinfo.asOutParam()); 44 44 if (FAILED(hr)) 45 45 return hr; 46 46 47 CComTypeAttr ptypeattr(ptinfo);48 hr = ptinfo->GetTypeAttr(&pt ypeattr);47 TYPEATTR *pta; 48 hr = ptinfo->GetTypeAttr(&pta); 49 49 if (FAILED(hr)) 50 50 return hr; 51 51 52 int cFuncs = pt ypeattr->cFuncs;52 int cFuncs = pta->cFuncs; 53 53 54 for (i =0; i<cFuncs; i++)54 for (i = 0; i < cFuncs; i++) 55 55 { 56 CComFuncDesc pfuncdesc(ptinfo);57 DWORD 58 BSTR 56 FUNCDESC *pfd; 57 DWORD hContext; // help context 58 BSTR fName; 59 59 60 hr = ptinfo->GetFuncDesc(i, &pf uncdesc);60 hr = ptinfo->GetFuncDesc(i, &pfd); 61 61 if (FAILED(hr)) 62 break;62 break; 63 63 64 hr = ptinfo->GetDocumentation(pf uncdesc->memid, &fName, NULL, &hContext, NULL);64 hr = ptinfo->GetDocumentation(pfd->memid, &fName, NULL, &hContext, NULL); 65 65 if (FAILED(hr)) 66 break; 66 { 67 ptinfo->ReleaseFuncDesc(pfd); 68 break; 69 } 67 70 68 71 /* We only allow firing event callbacks */ … … 77 80 SysFreeString(fName); 78 81 79 p funcdesc.Release();82 ptinfo->ReleaseFuncDesc(pfd); 80 83 } 84 ptinfo->ReleaseTypeAttr(pta); 81 85 82 return hr;86 return hr; 83 87 } 84 88 … … 100 104 101 105 102 HRESULT ComEventsHelper::fire(IDispatch * aObj, ComEventDesc& event, CComVariant*result)106 HRESULT ComEventsHelper::fire(IDispatch *aObj, ComEventDesc &event, tagVARIANT *result) 103 107 { 104 108 int argc = event.mArgc; 105 CComVariant*args = event.mArgs;109 tagVARIANT *args = event.mArgs; 106 110 DISPPARAMS disp = { args, NULL, argc, 0}; 107 111 DISPID dispid; -
TabularUnified trunk/src/VBox/Main/src-server/win/VBoxComEvents.h ¶
r55401 r60764 6 6 7 7 /* 8 * Copyright (C) 2010 Oracle Corporation8 * Copyright (C) 2010-2016 Oracle Corporation 9 9 * 10 10 * This file is part of VirtualBox Open Source Edition (OSE), as … … 27 27 #include <VBox/err.h> 28 28 29 #include <atlcom.h>30 31 29 32 30 class ComEventDesc … … 42 40 } 43 41 44 void init(const char *name, int argc)42 void init(const char *name, int argc) 45 43 { 46 44 // copies content … … 49 47 if (mArgs) 50 48 delete [] mArgs; 51 mArgs = new CComVariant[mArgc];49 mArgs = new tagVARIANT[mArgc]; 52 50 mPos = argc - 1; 53 51 } 54 52 55 53 template <class T> 56 ComEventDesc &add(T v)54 ComEventDesc &add(T v) 57 55 { 58 56 Assert(mPos>= 0); … … 65 63 com::Utf8Str mName; 66 64 int mArgc; 67 CComVariant*mArgs;65 tagVARIANT *mArgs; 68 66 int mPos; 69 67 … … 79 77 HRESULT init(const com::Guid &aGuid); 80 78 HRESULT lookup(com::Utf8Str &aName, DISPID *did); 81 HRESULT fire(IDispatch * aObj, ComEventDesc& desc, CComVariant*pResult);79 HRESULT fire(IDispatch *aObj, ComEventDesc &desc, tagVARIANT *pResult); 82 80 83 81 private:
Note:
See TracChangeset
for help on using the changeset viewer.