IUPnPDescriptionDocument::LoadAsync メソッド (upnp.h)

LoadAsync メソッドは、ドキュメントを非同期的に読み込みます。 このメソッドは、すぐに呼び出し元に制御を返し、指定されたコールバックを使用して、操作が完了したときに呼び出し元に通知します。

構文

HRESULT LoadAsync(
  [in] BSTR     bstrUrl,
  [in] IUnknown *punkCallback
);

パラメーター

[in] bstrUrl

読み込むドキュメントの URL を指定します。 指定された URL が相対 URL の場合、サーバー名は bstrUrl の値の前に付加されます。

[in] punkCallback

操作が完了したときに呼び出し元に通知するために UPnP フレームワークが使用するコールバックを指定する IUnknown への参照。 読み込み操作がすぐに失敗しなかった場合、このコールバックは、読み込み操作が成功したか失敗したかを示します。 pUnkCallback によって参照されるオブジェクトは、IUPnPDescriptionDocumentCallback インターフェイスまたは IDispatch インターフェイスをサポートする必要があります。

戻り値

メソッドが成功した場合、戻り値はS_OK。 それ以外の場合、メソッドは WinError.h で定義されている COM エラー コードの 1 つ、または次の UPnP 戻り値のいずれかを返します。

リターン コード 説明
UPNP_E_DEVICE_ELEMENT_EXPECTED
XML ドキュメントにデバイス要素がありません。ルート要素または DeviceList 要素のいずれかから欠落しています。
UPNP_E_DEVICE_NODE_INCOMPLETE
XML ドキュメントに 、Device 要素に必要な要素の 1 つがありません。
UPNP_E_ICON_ELEMENT_EXPECTED
XML ドキュメントにはアイコン要素がありません。 IconList 要素に含まれていないか、DeviceList 要素に IconList 要素が含まれていません。
UPNP_E_ICON_NODE_INCOMPLETE
XML ドキュメントに、 Icon 要素に必要な要素の 1 つがありません。
UPNP_E_ROOT_ELEMENT_EXPECTED
XML ドキュメントには、ドキュメントの最上位レベルにルート要素がありません。
UPNP_E_SERVICE_ELEMENT_EXPECTED
XML ドキュメントにサービス要素がありません。 ServiceList 要素に含まれていないか、DeviceList 要素に ServiceList 要素が含まれていません。
UPNP_E_SERVICE_NODE_INCOMPLETE
XML ドキュメントに 、Service 要素に必要な要素の 1 つがありません。

解説

メソッドが返されるまでに時間がかかる可能性があるため、このメソッドはユーザー インターフェイス スレッドから呼び出さないでください。

前の呼び出しの直後に同じオブジェクトに対してこのメソッドを呼び出すと、 LoadAsync の最初の呼び出しが中止されます。 これを回避するには、 IUPnPDescriptionDocumentCallback::LoadComplete コールバックを待機し、 LoadResult を使用して状態情報を表示します。

LoadAsync メソッドが Web ページ内のスクリプトによって呼び出される場合、bstrUrl は相対 URL である可能性があります。 現在の Web ページのアドレスがベース URL として使用されます。

このメソッドが Web ページから呼び出される場合、呼び出し元が指定する URL は、Web ページの読み込み元と同じサーバーを参照する必要があります。

pUnkCallback によって参照されるオブジェクトは、IUPnPDescriptionDocumentCallback インターフェイスまたは IDispatch インターフェイスをサポートする必要があります。 LoadAsync メソッドは、最初に pUnkCallback に対して IUPnPDescriptionDocumentCallback インターフェイスを照会します。 このインターフェイスがサポートされていない場合、 LoadAsync メソッドは pUnkCallback対して IDispatch インターフェイスを照会します。 IDispatch インターフェイスがサポートされていない場合、両方のチェックが失敗し、LoadAsync メソッドはE_FAILを返します。

LoadAsync メソッドの IDispatch に基づくコールバックは、1 つのパラメーターを受け取るスクリプト関数として機能します。 このパラメーターは、読み込み操作の結果です。 パラメーターが 0 の場合、読み込みは成功し、ユーザーはドキュメントからデバイス オブジェクトを取得できます。 パラメーターが 0 以外の場合は、エラーが記述されます。 値は、 IUPnPDescriptionDocument::Load メソッドが返すエラー コードと同じです。

Visual Basic Scripting Edition (VBScript) 開発ソフトウェアでは、2 番目の引数は GetRef(funcname) である必要があります。 ここで、funcname はコールバック サブルーチンの名前です。

この関数がS_OKを返す場合、 IUPnPDescriptionDocumentCallback::LoadComplete は UPnP フレームワークによって呼び出されます。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー サポートなし
対象プラットフォーム Windows
ヘッダー upnp.h
[DLL] Upnp.dll

関連項目

IUPnPDescriptionDocument

IUPnPDescriptionDocument::Load