GetProcessReference 함수(shlwapi.h)

SetProcessReference에서 제공하는 프로세스별 개체를 검색하여 프로세스를 활성 상태로 유지하기 위해 참조 횟수를 증분합니다.

구문

LWSTDAPI GetProcessReference(
  [out] IUnknown **punk
);

매개 변수

[out] punk

이 함수가 성공적으로 반환될 때 SetProcessReference에서 프로세스에 제공된 개체를 가리키는 포인터의 주소입니다. 애플리케이션은 더 이상 필요하지 않은 경우 이 리소스를 해제해야 합니다.

자유 스레드 IUnknown에 대한 포인터입니다. 구성 요소는 이 인터페이스( SHGetInstanceExplorer를 통해)를 사용하여 호스트 프로세스가 종료되지 않도록 할 수 있습니다. 이 값은 NULL일 수 있으며, 이 경우 프로세스 참조를 구성 요소에서 더 이상 사용할 수 없습니다.

반환 값

없음

설명

DLL로 구현되고 Windows Explorer(Explorer.exe) 또는 Windows 인터넷 Explorer(Iexplore.exe)과 같은 호스트 프로세스에서 실행되는 셸 확장 처리기와 같은 여러 구성 요소가 있습니다. 일반적으로 사용자가 호스트 프로세스를 닫으면 구성 요소도 즉시 종료됩니다. 이러한 갑작스러운 종료로 일부 구성 요소에 문제가 발생할 수 있습니다. 예를 들어 구성 요소가 백그라운드 스레드를 사용하여 데이터를 다운로드하거나 사용자 인터페이스 함수를 실행하는 경우 안전하게 종료하는 데 추가 시간이 필요할 수 있습니다.

GetProcessReference 를 사용하면 호스트 프로세스에서 실행되는 구성 요소가 호스트 프로세스에 대한 참조를 보유할 수 있습니다. GetProcessReference 는 호스트의 참조 수를 증가시키고 호스트의 IUnknown 인터페이스에 대한 포인터를 반환합니다. 해당 참조를 보유하면 구성 요소가 호스트 프로세스가 조기에 닫히지 않도록 방지할 수 있습니다. 구성 요소가 필요한 처리를 완료한 후 (*punk)->Release 를 호출하여 호스트의 참조를 해제하고 프로세스가 종료되도록 허용해야 합니다.

참고GetProcessReference 가 성공하면 구성 요소는 더 이상 필요하지 않을 때 호스트의 참조를 해제해야 합니다. 그렇지 않으면 프로세스와 연결된 모든 리소스가 메모리에 유지됩니다. *펑크가 가리키는 IUnknown 인터페이스는 이 참조를 해제하는 데만 사용할 수 있습니다. 구성 요소는 (*punk)->QueryInterface 를 사용하여 다른 인터페이스 포인터를 요청할 수 없습니다.
 
GetProcessReference 는 이전에 SetProcessReference 를 호출하여 프로세스 참조를 설정한 애플리케이션에서 호출된 경우에만 성공합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shlwapi.h
라이브러리 Shlwapi.lib
DLL Api-ms-win-shcore-thread-L1-1-0.dll

추가 정보

SHGetInstanceExplorer

SetProcessReference

Windows API 세트