От:
D-er2
Дата: 24.05.06 12:14
Оценка:
Пытаюсь вызвать метод ворда:
Public Overridable Sub Protect(ByVal Type As Word.WdProtectionType, Optional ByRef NoReset As Object = Nothing, Optional ByRef Password As Object = Nothing, Optional ByRef UseIRM As Object = Nothing, Optional ByRef EnforceStyleLock As Object = Nothing)
Вызываю так:
VARIANT_BOOL vb = VARIANT_TRUE;
CComVariant varReturn;
DISPID dispID = 0;
_com_error ev = spDoc->GetIDsOfNames( IID_NULL, &CComBSTR( _T( "Protect" ) ), 1, LOCALE_SYSTEM_DEFAULT, &dispID );
UINT iErr = 0;
DISPPARAMS params = { 0 };
VARIANT* parm = new VARIANT[ 2 ];
parm[ 0 ].vt = VT_I4;
parm[ 0 ].lVal = 2;
parm[ 1 ].vt = VT_BOOL | VT_BYREF;
parm[ 1 ].pboolVal = &vb;
params.cArgs = 2;
params.rgvarg = parm;
EXCEPINFO exInfo = {0};
ev = spDoc->Invoke( dispID, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD , ¶ms, &varReturn, &exInfo, &iErr );
Когда передаю один аргумент, все работает, если два — то нет.
Подскажите что не так.
Спасибо.
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить