#include
void EasyChat_command( BSTR cmd )
{
const GUID CLSID_AnyChat = {0xE59FA478, 0x0535, 0x43E6,{ 0xBE, 0x12, 0x1D, 0x6E, 0x75, 0x51, 0x2C, 0x3B} };
HRESULT hr;
IDispatch* pIDispatch ;
DISPID dispid ;
OLECHAR* func = L"command";
DISPPARAMS funcparams ;
VARIANTARG vcmd ;
vcmd.vt = VT_BSTR;
vcmd.bstrVal = cmd;
funcparams.rgvarg = &vcmd;
funcparams.cArgs = 1;
funcparams.cNamedArgs = 0;
hr = ::CoInitialize( NULL );
if( FAILED( hr ) ) return ;
hr = ::CoCreateInstance( CLSID_AnyChat, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&pIDispatch ) ;
if( FAILED( hr ) ) return ;
hr = pIDispatch->GetIDsOfNames(IID_NULL, &func, 1, LOCALE_SYSTEM_DEFAULT, &dispid ) ;
// if( FAILED( hr ) ) return ;
hr = pIDispatch->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &funcparams, NULL, NULL, NULL) ;
pIDispatch -> Release();
}
调用这个函数的例程: ( 启动跟EasyCall :83381234567 的 chat 对话)void EasyChat_command( BSTR cmd )
{
const GUID CLSID_AnyChat = {0xE59FA478, 0x0535, 0x43E6,{ 0xBE, 0x12, 0x1D, 0x6E, 0x75, 0x51, 0x2C, 0x3B} };
HRESULT hr;
IDispatch* pIDispatch ;
DISPID dispid ;
OLECHAR* func = L"command";
DISPPARAMS funcparams ;
VARIANTARG vcmd ;
vcmd.vt = VT_BSTR;
vcmd.bstrVal = cmd;
funcparams.rgvarg = &vcmd;
funcparams.cArgs = 1;
funcparams.cNamedArgs = 0;
hr = ::CoInitialize( NULL );
if( FAILED( hr ) ) return ;
hr = ::CoCreateInstance( CLSID_AnyChat, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&pIDispatch ) ;
if( FAILED( hr ) ) return ;
hr = pIDispatch->GetIDsOfNames(IID_NULL, &func, 1, LOCALE_SYSTEM_DEFAULT, &dispid ) ;
// if( FAILED( hr ) ) return ;
hr = pIDispatch->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &funcparams, NULL, NULL, NULL) ;
pIDispatch -> Release();
}
BSTR cmd( L"chat?83381234567" );
EasyChat_command( cmd ) ;



