IWMWriterPushSink
COM公式ドキュメント
IWMWriterPushSink インターフェイスを使用すると、アプリケーションは ASF ファイルを Windows Media サーバー上の発行ポイントに送信できます。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Connect メソッドは、Windows Media サーバー上の発行ポイントに接続します。
| pwszURL | LPWSTR | in | Windows Media サーバー上の発行ポイントの URL を格納するワイド文字列。たとえば、URL が "http://MyServer/MyPublishingPoint" の場合、プッシュシンクは MyServer という名前のサーバー上の MyPublishingPoint という名前の発行ポイントに接続します。既定のポート番号は 80 です。サーバーが別のポートを使用している場合は、URL 内にポート番号を指定します。たとえば、"http://MyServer:8080/MyPublishingPoint" はポート番号 8080 を指定します。 |
| pwszTemplateURL | LPWSTR | in | テンプレートとして使用する既存の発行ポイントの URL を格納する省略可能なワイド文字列。このパラメーターは NULL にできます。 |
| fAutoDestroy | BOOL | in | プッシュシンクがサーバーから切断した後に発行ポイントを削除するかどうかを指定するブール値。 |
戻り値
このメソッドは HRESULT を返します。とり得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| メソッドは失敗しました。 | |
| 無効な引数です。pwszURL を NULL にすることはできません。 | |
| メモリが不足しています。 | |
| ホスト名が無効です。 |
解説(Remarks)
pwsURL で指定した発行ポイントが存在しない場合、サーバーは新しい発行ポイントを作成します。呼び出し元は、サーバーに対する書き込みおよび作成のアクセス許可を持っている必要があります。新しい発行ポイントは、pwszTemplateURL パラメーターで指定した発行ポイントと同じ構成になります。pwszTemplateURL が NULL の場合、新しい発行ポイントはサーバーの既定の発行ポイントと同じ構成になります。
Disconnect メソッドは、プッシュシンクをサーバーから切断します。
戻り値
メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。
解説(Remarks)
ダウンストリームサーバー上のデータパスは 5 分間アクティブなまま維持され、その後クリーンアップされます。
EndSession メソッドは、プッシュ配信セッションを終了します。このメソッドはサーバーにストリーム終了メッセージを送信し、その後サーバー上のデータパスをシャットダウンします。
戻り値
このメソッドは HRESULT を返します。とり得る値には、以下の表に示すものが含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 接続エラーが発生しました。 | |
| サーバーへの接続がありません。(接続が確立される前にこのメソッドが呼び出された可能性があります。) |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IWMWriterPushSink "{DC10E6A5-072C-467D-BF57-6330A9DDE12A}"
#usecom global IWMWriterPushSink IID_IWMWriterPushSink "{}"
#comfunc global IWMWriterPushSink_Connect 8 wstr,wstr,int
#comfunc global IWMWriterPushSink_Disconnect 9
#comfunc global IWMWriterPushSink_EndSession 10
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。