Win32 API 日本語リファレンス
ホームMedia.WindowsMediaFormat › IWMWriterPushSink

IWMWriterPushSink

COM
IIDdc10e6a5-072c-467d-bf57-6330a9dde12a継承元IWMWriterSink自前メソッド開始 vtbl8

公式ドキュメント

IWMWriterPushSink インターフェイスを使用すると、アプリケーションは ASF ファイルを Windows Media サーバー上の発行ポイントに送信できます。

メソッド 3

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 8 HRESULT Connect(LPWSTR pwszURL, LPWSTR pwszTemplateURL, BOOL fAutoDestroy)

Connect メソッドは、Windows Media サーバー上の発行ポイントに接続します。

pwszURLLPWSTRinWindows Media サーバー上の発行ポイントの URL を格納するワイド文字列。たとえば、URL が "http://MyServer/MyPublishingPoint" の場合、プッシュシンクは MyServer という名前のサーバー上の MyPublishingPoint という名前の発行ポイントに接続します。既定のポート番号は 80 です。サーバーが別のポートを使用している場合は、URL 内にポート番号を指定します。たとえば、"http://MyServer:8080/MyPublishingPoint" はポート番号 8080 を指定します。
pwszTemplateURLLPWSTRinテンプレートとして使用する既存の発行ポイントの URL を格納する省略可能なワイド文字列。このパラメーターは NULL にできます。
fAutoDestroyBOOLinプッシュシンクがサーバーから切断した後に発行ポイントを削除するかどうかを指定するブール値。

戻り値

このメソッドは HRESULT を返します。とり得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_FAIL
メソッドは失敗しました。
E_INVALIDARG
無効な引数です。pwszURLNULL にすることはできません。
E_OUTOFMEMORY
メモリが不足しています。
NS_E_INVALID_NAME
ホスト名が無効です。

解説(Remarks)

pwsURL で指定した発行ポイントが存在しない場合、サーバーは新しい発行ポイントを作成します。呼び出し元は、サーバーに対する書き込みおよび作成のアクセス許可を持っている必要があります。新しい発行ポイントは、pwszTemplateURL パラメーターで指定した発行ポイントと同じ構成になります。pwszTemplateURLNULL の場合、新しい発行ポイントはサーバーの既定の発行ポイントと同じ構成になります。

vtbl 9 HRESULT Disconnect()

Disconnect メソッドは、プッシュシンクをサーバーから切断します。

戻り値

メソッドが成功した場合は S_OK を返します。失敗した場合は HRESULT エラーコードを返します。

解説(Remarks)

ダウンストリームサーバー上のデータパスは 5 分間アクティブなまま維持され、その後クリーンアップされます。

vtbl 10 HRESULT EndSession()

EndSession メソッドは、プッシュ配信セッションを終了します。このメソッドはサーバーにストリーム終了メッセージを送信し、その後サーバー上のデータパスをシャットダウンします。

戻り値

このメソッドは HRESULT を返します。とり得る値には、以下の表に示すものが含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
NS_E_CONNECTION_FAILURE
接続エラーが発生しました。
NS_E_NOCONNECTION
サーバーへの接続がありません。(接続が確立される前にこのメソッドが呼び出された可能性があります。)
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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が無いため "{}"(他メソッド/アクティベーションで取得)。