Code Block
int _tmain(int argc, _TCHAR* argv[]) {
VARIANT wdApp = {0};
VARIANT wdAddIns = {0}; // collection of addins
VARIANT wdAddIn = {0}; // an add in object
VARIANT vCount = {0};
VARIANT lgVariant = {0};
OleInitialize(NULL);
CLSID clsid;
CLSIDFromProgID(L"Word.Application", &clsid);
HRESULT hr = CoCreateInstance(clsid,
NULL,
CLSCTX_LOCAL_SERVER|CLSCTX_INPROC_SERVER,
IID_IDispatch,
(void **)&wdApp.pdispVal);
if( hr != S_OK) {
cout<<"CoCreateInstance failed."<<endl;
return 0;
}
VariantClear(&lgVariant);
// set visible to true
lgVariant.vt = VT_I4;
lgVariant.lVal = 1;
AutoWrap(DISPATCH_PROPERTYPUT,
NULL, wdApp.pdispVal, L"Visible", 1, lgVariant);
AutoWrap(DISPATCH_PROPERTYGET|DISPATCH_METHOD,
&wdAddIns, wdApp.pdispVal, L"AddIns", 0);
AutoWrap(DISPATCH_PROPERTYGET|DISPATCH_METHOD,
&vCount, wdAddIns.pdispVal, L"Count", 0);
for(long j = 0; j < vCount.lVal; ++j) {
AutoWrap(DISPATCH_PROPERTYGET|DISPATCH_METHOD,
&wdAddIn, wdAddIns.pdispVal, L"Item", 1, lgVariant);
// use a constant value of 1 for index
AutoWrap(DISPATCH_METHOD, NULL,
wdAddIn.pdispVal, L"Delete", 0);
}
cout<<"ok done!"<<endl;
getch();
return 0;
}