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 반환 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
XML 문서에는 디바이스 요소가 없습니다. 루트 요소 또는 DeviceList 요소에서 누락되었습니다. |
|
XML 문서에 Device 요소의 필수 요소 중 하나가 없습니다. |
|
XML 문서에 아이콘 요소가 없습니다. IconList 요소에서 누락되었거나 DeviceList 요소에 IconList 요소가 없습니다. |
|
XML 문서에 Icon 요소의 필수 요소 중 하나가 없습니다. |
|
XML 문서에는 문서의 최상위 수준에 루트 요소가 없습니다. |
|
XML 문서에 서비스 요소가 없습니다. ServiceList 요소에서 누락되었거나 DeviceList 요소에 ServiceList 요소가 없습니다. |
|
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 |