IRendezvousSession
COM公式ドキュメント
セッションに関するデータを送信し、セッションを終了できるメソッドを公開します。
解説(Remarks)
インスタント メッセージング (IM) アプリケーションはこのインターフェイスを実装し、IRendezvousSession を実装して DRendezvousSessionEvents 接続ポイントをサポートするオブジェクトを渡します。
Windows リモート アシスタンス アプリケーションは、SetRendezvousSession の呼び出しが完了した後にセッションを保持するため、IRendezvousSession->AddRef を呼び出します。
Windows リモート アシスタンス アプリケーションは、セッションが完了すると IRendezvousSession->Release を呼び出します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
セッションの状態を示す値を取得します。
| pSessionState | RENDEZVOUS_SESSION_STATE* | out | ランデブーセッションの現在の状態 (RENDEZVOUS_SESSION_STATE) を受け取る。 |
Windows Messenger の連絡先名を格納する BSTR へのポインターを取得します。
| bstrUserName | LPWSTR* | out | 接続先リモートユーザーの名前を表す文字列を受け取る。呼び出し側が解放する。 |
セッション情報を示す値を取得します。たとえば、セッション フラグはユーザーが招待者と被招待者のいずれであるかを示すことができます。
| pFlags | INT* | out | セッションに関するフラグを受け取る。 |
コンテキスト データをリモートの RendezvousApplication に送信します。
| bstrData | LPWSTR | in | アプリケーションのコンテキスト データを指定する BSTR です。 |
戻り値
このメソッドは、次のいずれかの値を返すことができます。
| 戻り値 | 説明 |
|---|---|
| コンテキスト データが正常に送信されました。 | |
| メソッドに渡されたコンテキスト データが無効です。 | |
| コンテキスト データを送信するのに十分なメモリがありません。 |
リモートの RendezvousApplication を終了します。
| hr | HRESULT | in | アプリケーション終了時の HRESULT です。 |
| bstrAppData | LPWSTR | in | アプリケーション データです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IRendezvousSession "{9BA4B1DD-8B0C-48B7-9E7C-2F25857C8DF5}" #usecom global IRendezvousSession IID_IRendezvousSession "{}" #comfunc global IRendezvousSession_get_State 3 var #comfunc global IRendezvousSession_get_RemoteUser 4 var #comfunc global IRendezvousSession_get_Flags 5 var #comfunc global IRendezvousSession_SendContextData 6 wstr #comfunc global IRendezvousSession_Terminate 7 int,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IRendezvousSession "{9BA4B1DD-8B0C-48B7-9E7C-2F25857C8DF5}" #usecom global IRendezvousSession IID_IRendezvousSession "{}" #comfunc global IRendezvousSession_get_State 3 sptr #comfunc global IRendezvousSession_get_RemoteUser 4 sptr #comfunc global IRendezvousSession_get_Flags 5 sptr #comfunc global IRendezvousSession_SendContextData 6 wstr #comfunc global IRendezvousSession_Terminate 7 int,wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。