C ++ IMessengerAdvanced :: StartConversation返回E_FAIL [英] C++ IMessengerAdvanced::StartConversation returns E_FAIL

查看:77
本文介绍了C ++ IMessengerAdvanced :: StartConversation返回E_FAIL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我正在尝试使用Communicator API从C ++拨打电话号码。电话号码不会反映我的Communicator联系人列表中的任何联系人。


int _tmain( int argc,_TCHAR * argv [])
{
IMessenger * pIMessenger = NULL;
IMessengerAdvanced * pIMessengerAdvanced = NULL;

CoInitialize(0 );
CoCreateInstance(CLSID_Messenger,NULL,CLSCTX_ALL,IID_IMessenger,
void **& pIMessenger); // instanciate对象


pIMessenger-> QueryInterface(IID_IMessengerAdvanced,( void **)& pIMessengerAdvanced);


HRESULT hr;


SAFEARRAY * pMyContact;
SAFEARRAYBOUND rgsabound [1];
// 1维
rgsabound [0] .lLbound = 1;
rgsabound [0] .cElements = 1; // 1 number
pMyContact = SafeArrayCreate(VT_BSTR,1,rgsabound);
if (pMyContact)
SafeArrayPutElement(pMyContact,(
long *)rgsabound,SysAllocString(L " + 123456789" ));


VARIANT vtMyContact;
VariantInit(& vtMyContact);
vtMyContact.vt = VT_ARRAY;
vtMyContact.parray = pMyContact;


VARIANT tmp; //可选输入的临时变量
tmp.vt = VT_NULL;

VARIANT tmph;
//用于窗口句柄
tmph .vt = VT_PTR;


hr = pIMessengerAdvanced-> StartConversation(CONVERSATION_TYPE_PHONE,vtMyContact,tmp,tmp,tmp,tmp,& tmph);


VariantClear(& vtMyContact);


返回 0;


}

Communicator正在运行,我已登录。我有不知道该怎么做。我知道错误消息的含义,但不知道如何解决。
我对如何更改代码从C ++调用任何数字的任何建议持开放态度。

亲切的问候,
< br> Eric

解决方案

使用 CONVERSATION_TYPE_AUDIO上面的代码要求第三方呼叫控制电话

Hi all,

I am trying to call a telephone number from C++ with Communicator API. The telephone number does not mirror any contact in my Communicator contact list.

int _tmain(int argc, _TCHAR* argv[])
{
IMessenger *pIMessenger = NULL;
IMessengerAdvanced *pIMessengerAdvanced = NULL;

CoInitialize(0);
CoCreateInstance(    CLSID_Messenger, NULL, CLSCTX_ALL, IID_IMessenger, 
                            (
void ** &pIMessenger); // instanciate object

pIMessenger->QueryInterface(IID_IMessengerAdvanced, (void**) &pIMessengerAdvanced);

HRESULT hr;

SAFEARRAY* pMyContact;
SAFEARRAYBOUND rgsabound[1];
// 1 dimensional
rgsabound[0].lLbound = 1;
rgsabound[0].cElements = 1; // 1 number
pMyContact = SafeArrayCreate(VT_BSTR, 1, rgsabound);
if (pMyContact)
    SafeArrayPutElement(pMyContact,(
long *)rgsabound, SysAllocString(L"+123456789"));

VARIANT vtMyContact;
VariantInit(&vtMyContact);
vtMyContact.vt=VT_ARRAY;
vtMyContact.parray = pMyContact;

VARIANT tmp; // temp variant for optional input
tmp.vt = VT_NULL;

VARIANT tmph;
// used for window handle
tmph.vt = VT_PTR;

hr = pIMessengerAdvanced->StartConversation(CONVERSATION_TYPE_PHONE, vtMyContact, tmp, tmp, tmp, tmp, &tmph);

VariantClear(&vtMyContact);

return 0;

}

Communicator is running and I am signed in. I have no clue what to do. I know the meaning of the error message but don't know how to solve.
I am open for any suggestions how to change code for calling any number from C++.

Kind regards,

Eric

解决方案

use CONVERSATION_TYPE_AUDIO the code above is asking for a 3rd party call control call


这篇关于C ++ IMessengerAdvanced :: StartConversation返回E_FAIL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆