Skypeには独自のAPIがあり、さまざまな言語に対応していることは誰もが知っています。 Skype ++ for C ++で説明を始めたかった。
公式サイトからSkype4COMをダウンロードできます。
アーカイブには3つのファイルが含まれます。
- Skype4COM.chm
- Skype4COM.dll
- Skype4COM.msm
実際には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を使用したより興味深い例を書くことができます...