📄 client.cpp
字号:
// client.cpp
#include <iostream.h>
#include "Component\component.h" // Generated by MIDL
void main()
{
cout << "Client: Calling CoInitialize()" << endl;
CoInitialize(NULL);
IUnknown* pUnknown;
IDispatch* pDispatch;
cout << "Client: Calling CoCreateInstance()" << endl;
CoCreateInstance(CLSID_InsideCOM, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pUnknown);
cout << "Client: Calling QueryInterface() for IDispatch on " << pUnknown << endl;
pUnknown->QueryInterface(IID_IDispatch, (void**)&pDispatch);
cout << "Client: Calling Release() for IUnknown on " << pUnknown << endl;
pUnknown->Release();
cout << "Client: Calling GetIDsOfNames" << endl;
OLECHAR* name = L"Sum";
DISPID dispid;
pDispatch->GetIDsOfNames(IID_NULL, &name, 1, GetUserDefaultLCID(), &dispid);
cout << "GetIDsOfNames(Sum) = " << dispid << endl;
VARIANTARG test[2];
VariantInit(&test[0]);
test[0].vt = VT_I4;
test[0].lVal = 7;
VariantInit(&test[1]);
test[1].vt = VT_I4;
test[1].lVal = 2;
VARIANT result;
VariantInit(&result);
DISPPARAMS param = { test, 0, 2, NULL };
if(FAILED(pDispatch->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, ¶m, &result, NULL, NULL)))
cout << "pDispatch->Invoke() failed" << endl;
cout << test[0].lVal << " + " << test[1].lVal << " = " << result.lVal << endl;
pDispatch->Release();
cout << "Client: Calling CoUninitialize()" << endl;
CoUninitialize();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -