SHGetInstanceExplorer 함수(shlobj_core.h)
호스트된 셸 확장 및 기타 구성 요소가 호스트 프로세스가 조기에 닫히지 않도록 하는 인터페이스를 검색합니다. 호스트 프로세스는 일반적으로 Windows Explorer 또는 Windows 인터넷 Explorer 다른 애플리케이션에서도 사용할 수 있습니다.
구문
SHSTDAPI SHGetInstanceExplorer(
[out] IUnknown **ppunk
);
매개 변수
[out] ppunk
형식: IUnknown**
이 함수가 성공적으로 반환되면 호스트 프로세스의 IUnknown 인터페이스 포인터의 주소가 포함됩니다. 호스트 프로세스가 종료되지 않도록 하는 데 사용되는 자유 스레드 인터페이스입니다. 함수 호출이 실패하면 이 값은 NULL로 설정됩니다.
반환 값
형식: HRESULT
이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
DLL로 구현되고 Windows Explorer(Explorer.exe) 또는 인터넷 Explorer(Iexplore.exe)과 같은 호스트 프로세스에서 실행되는 셸 확장 처리기와 같은 여러 구성 요소가 있습니다. 일반적으로 사용자가 호스트 프로세스를 닫으면 구성 요소도 즉시 종료됩니다. 이러한 갑작스러운 종료로 일부 구성 요소에 문제가 발생할 수 있습니다. 예를 들어 구성 요소가 백그라운드 스레드를 사용하여 데이터를 다운로드하거나 사용자 인터페이스 함수를 실행하는 경우 안전하게 종료하는 데 추가 시간이 필요할 수 있습니다.
SHGetInstanceExplorer 를 사용하면 호스트 프로세스에서 실행되는 구성 요소가 호스트 프로세스에 대한 참조를 보유할 수 있습니다. SHGetInstanceExplorer 는 호스트의 참조 수를 증가시키고 호스트의 IUnknown 인터페이스에 대한 포인터를 반환합니다. 해당 참조를 보유하면 구성 요소가 호스트 프로세스가 조기에 닫히지 않도록 방지할 수 있습니다. 구성 요소가 필요한 처리를 완료한 후에 는 (*ppunk)->Release 를 호출하여 호스트의 참조를 해제하고 프로세스가 종료되도록 허용해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shlobj_core.h(Shlobj.h 포함) |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 4.0 이상) |