C ++でのSkype APIの使用

少し前まで、連絡先リストに登録されている特定のユーザーにSkypeを介して自動的にメッセージを送信するアプリケーションを作成する必要がありました。 タスクはそれほど難しくありませんでしたが、それはポイントではありませんでした。 Skype APIの使用に関する小さな記事を書くことにしました。



Skypeには独自のAPIがあり、さまざまな言語に対応していることは誰もが知っています。 Skype ++ for C ++で説明を始めたかった。

公式サイトからSkype4COMをダウンロードできます。

アーカイブには3つのファイルが含まれます。



実際にはSkype4COM.dllが必要です



SkypeのHello World



最初の例では、現在のSkypeクライアントのバージョンを表示するSkypeサイトから例を取り上げることにしました。

#import "Skype4COM.dll"



int _tmain( int argc, _TCHAR* argv[]) {

// COM

CoInitialize(NULL);



// Skype

SKYPE4COMLib::ISkypePtr pSkype(__uuidof(SKYPE4COMLib::Skype));



// Skype API

pSkype->Attach(6,VARIANT_TRUE);



//

_bstr_t bstrSkypeVersion = pSkype->GetVersion();

printf( "Skype client version %s\n" , ( char *)bstrSkypeVersion);



// COM ""

_bstr_t bstrWrapperVersion = pSkype->GetApiWrapperVersion();

printf( "COM wrapper version %s\n" , ( char *)bstrWrapperVersion);



//

pSkype = NULL;

CoUninitialize();



return 0;

}








一般的に、すべてがシンプルで明確です。 確かに、常にセキュリティに関連しているため、あまり気に入らない点が1つあります。

pSkype->Attach(6, VARIANT_TRUE);





skypeは、アプリケーションでskypeリソースを使用する許可をリクエストします。 セキュリティの面では正しいですが、小さな回避策がありますが、それについては現在の投稿の形式ではありません))))



連絡先リストからユーザーにメッセージを送信する



ありふれた例のセットを続けますが、実際にはメッセージの送信に対処します。

#import "Skype4COM.dll"

using namespace SKYPE4COMLib;



int _tmain( int argc, _TCHAR* argv[]) {

CoInitialize(NULL);

ISkypePtr pSkype(__uuidof(Skype));

pSkype->Attach(6,VARIANT_TRUE);



IChatMessage *message;

message = pSkype->SendMessage(_bstr_t(L "user_name" ), _bstr_t(L "" ));

printf( "%s sent message" , ( char *)message->FromHandle);



pSkype = NULL;

CoUninitialize();

return 0;

}








ユーザーにダイヤルするには、 PlaceCallメソッドを呼び出す必要があります。

ICallPtr pCall = pSkype->PlaceCall(_bstr_t(L"user_name"), L"", L"", L"");





連絡先リストを取得



IUserCollectionPtr contactList = pSkype->GetFriends();

for ( int i = 1; i <= contactList->GetCount(); i++) {

_bstr_t bstrHandle = contactList->GetItem(i)->GetHandle();

_bstr_t bstrFullname = contactList->GetItem(i)->GetFullName();

printf( "Friend login %s and name %s \n" , ( char *)bstrHandle, ( char *)bstrFullname);

}








ソースコード



トピックが興味深い場合、Skype4COMを使用したより興味深い例を書くことができます...



All Articles