IShellFolder::BindToObject 메서드(shobjidl_core.h)
일반적으로 특정 항목에 대해 IShellFolder 를 구현하는 Shell 폴더 개체인 처리기를 검색합니다. 처리기의 생성을 제어하는 선택적 매개 변수는 바인딩 컨텍스트에서 전달됩니다.
구문
HRESULT BindToObject(
[in] PCUIDLIST_RELATIVE pidl,
[in] IBindCtx *pbc,
[in] REFIID riid,
[out] void **ppv
);
매개 변수
[in] pidl
형식: PCUIDLIST_RELATIVE
하위 폴더를 식별하는 PIDL( ITEMIDLIST 구조체)의 주소입니다. 이 값은 네임스페이스 계층 구조의 부모 폴더 아래의 모든 수준에서 항목을 참조할 수 있습니다. 구조체에는 하나 이상의 SHITEMID 구조체와 NULL 종료가 차례로 포함됩니다.
[in] pbc
형식: IBindCtx*
처리기의 생성에 매개 변수를 전달하는 데 사용할 수 있는 바인딩 컨텍스트 개체의 IBindCtx 인터페이스에 대한 포인터입니다. 이 매개 변수를 사용하지 않으면 NULL로 설정합니다. 이 매개 변수에 대한 지원은 폴더 개체 구현에 대한 선택 사항이므로 일부 폴더는 바인딩 컨텍스트 사용을 지원하지 않을 수 있습니다.
바인딩 컨텍스트에서 제공할 수 있는 정보에는 스트림 처리기에 바인딩할 때 액세스 모드를 나타내는 grfMode 멤버를 포함하는 BIND_OPTS 구조가 포함됩니다. IBindCtx::RegisterObjectParam 및 IBindCtx::GetObjectParam을 사용하여 다른 매개 변수를 설정하고 검색할 수 있습니다.
[in] riid
형식: REFIID
반환할 인터페이스의 식별자입니다. IID_IShellFolder, IID_IStream 또는 특정 처리기를 식별하는 다른 인터페이스일 수 있습니다.
[out] ppv
형식: void**
이 메서드가 반환되면 요청된 인터페이스에 대한 포인터의 주소가 포함됩니다. 오류가 발생하면 이 주소에 NULL 포인터가 반환됩니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
애플리케이션은 IShellFolder::BindToObject(..., IID_IShellFolder, ...) 를 사용하여 하위 항목에 대한 Shell 폴더 개체를 가져옵니다. 클라이언트는 특정 처리기를 식별하는 데 사용되는 정식 인터페이스 IID를 전달해야 합니다. 예를 들어 IID_IShellFolder 폴더 처리기를 식별하고 IID_IStream 스트림 처리기를 식별합니다. 구현은 IID_IShellFolder2 같은 파생 인터페이스를 사용하는 처리기에 대한 바인딩도 지원할 수 있습니다. Shell 네임스페이스 확장은 지정된 하위 항목에 대한 Shell 폴더 개체를 만든 다음 QueryInterface 를 호출하여 인터페이스 포인터를 통해 개체와 통신하여 이 함수를 구현할 수 있습니다.
BindToObject 구현은 지원하지 않는 IID 값에 대해 신속하게 실패하여 호출을 최적화할 수 있습니다. 예를 들어 하위 항목의 Shell 폴더 개체가 IRemoteComputer를 지원하지 않는 경우 구현은 하위 항목에 대한 Shell 폴더 개체를 불필요하게 만든 다음 IRemoteComputer가 결국 지원되지 않는 것을 찾는 대신 즉시 E_NOINTERFACE 반환해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shobjidl_core.h(Shobjidl.h 포함) |
DLL | Shell32.dll(버전 4.0 이상) |