다음을 통해 공유


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 오류 코드 중 하나 또는 다음 UPnP 반환 값 중 하나를 반환합니다.

반환 코드 설명
UPNP_E_DEVICE_ELEMENT_EXPECTED
XML 문서에는 디바이스 요소가 없습니다. 루트 요소 또는 DeviceList 요소에서 누락되었습니다.
UPNP_E_DEVICE_NODE_INCOMPLETE
XML 문서에 Device 요소의 필수 요소 중 하나가 없습니다.
UPNP_E_ICON_ELEMENT_EXPECTED
XML 문서에 아이콘 요소가 없습니다. IconList 요소에서 누락되었거나 DeviceList 요소에 IconList 요소가 없습니다.
UPNP_E_ICON_NODE_INCOMPLETE
XML 문서에 Icon 요소의 필수 요소 중 하나가 없습니다.
UPNP_E_ROOT_ELEMENT_EXPECTED
XML 문서에는 문서의 최상위 수준에 루트 요소가 없습니다.
UPNP_E_SERVICE_ELEMENT_EXPECTED
XML 문서에 서비스 요소가 없습니다. ServiceList 요소에서 누락되었거나 DeviceList 요소에 ServiceList 요소가 없습니다.
UPNP_E_SERVICE_NODE_INCOMPLETE
XML 문서에 Service 요소의 필수 요소 중 하나가 없습니다.

설명

메서드가 반환되는 데 시간이 오래 걸릴 수 있으므로 사용자 인터페이스 스레드에서 이 메서드를 호출해서는 안 됩니다.

이전 호출 직후 동일한 개체에 대해 이 메서드를 호출하면 LoadAsync 의 첫 번째 호출이 중단됩니다. 이를 방지하려면 IUPnPDescriptionDocumentCallback::LoadComplete 콜백 을 기다린 다음 LoadResult 를 사용하여 상태 정보를 확인합니다.

웹 페이지 내의 스크립트에서 LoadAsync 메서드를 호출하는 경우 bstrUrl 은 상대 URL일 수 있습니다. 현재 웹 페이지의 주소는 기본 URL로 사용됩니다.

웹 페이지에서 이 메서드를 호출하는 경우 호출자가 지정하는 URL은 웹 페이지가 로드된 동일한 서버를 참조해야 합니다.

pUnkCallback에서 참조하는 개체는 IUPnPDescriptionDocumentCallback 인터페이스 또는 IDispatch 인터페이스를 지원해야 합니다. LoadAsync 메서드는 먼저 IUPnPDescriptionDocumentCallback 인터페이스에 대한 pUnkCallback을 쿼리합니다. 이 인터페이스가 지원되지 않는 경우 LoadAsync 메서드는 iDispatch 인터페이스에 대해 pUnkCallback을 쿼리합니다. IDispatch 인터페이스가 지원되지 않으면 두 검사가 모두 실패하고 LoadAsync 메서드가 E_FAIL 반환합니다.

LoadAsync 메서드의 IDispatch를 기반으로 하는 콜백은 하나의 매개 변수를 사용하는 스크립트 함수로 작동합니다. 이 매개 변수는 로드 작업의 결과입니다. 매개 변수가 0이면 로드가 성공하고 사용자가 문서에서 디바이스 개체를 검색할 수 있습니다. 매개 변수가 0이 아닌 경우 오류를 설명합니다. 값은 IUPnPDescriptionDocument::Load 메서드가 반환하는 오류 코드와 동일합니다.

VBScript(Visual Basic Scripting Edition) 개발 소프트웨어에서 두 번째 인수는 GetRef(funcname)여야 합니다. 여기서 funcname 은 콜백 서브루틴의 이름입니다.

이 함수가 S_OK 반환하는 경우 IUPnPDescriptionDocumentCallback::LoadComplete 는 UPnP 프레임워크에서 호출됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 Windows
헤더 upnp.h
DLL Upnp.dll

추가 정보

IUPnPDescriptionDocument

IUPnPDescriptionDocument::Load