RegisterForPrintAsyncNotifications 함수(prnasnot.h)
애플리케이션이 프린터 드라이버, 인쇄 프로세서 및 포트 모니터와 같은 인쇄 스풀러 호스팅 인쇄 구성 요소의 알림을 등록할 수 있도록 합니다.
구문
HRESULT RegisterForPrintAsyncNotifications(
[in] PCWSTR pszName,
[in] PrintAsyncNotificationType *pNotificationType,
[in] PrintAsyncNotifyUserFilter eUserFilter,
[in] PrintAsyncNotifyConversationStyle eConversationStyle,
[in] IPrintAsyncNotifyCallback *pCallback,
[out] HANDLE *phNotify
);
매개 변수
[in] pszName
인쇄 서버 또는 인쇄 큐의 이름에 대한 포인터입니다.
[in] pNotificationType
애플리케이션이 수신해야 하는 알림 유형에 대한 데이터 스키마의 GUID에 대한 포인터입니다.
[in] eUserFilter
알림을 보낼지 여부를 지정하는 값입니다.
- 인쇄 스풀러 호스팅 플러그 인 발신자와 동일한 사용자로 실행되는 애플리케이션만 해당합니다.
- 더 광범위한 수신 대기 애플리케이션 집합입니다.
[in] eConversationStyle
통신이 양방향인지 단방향인지를 지정하는 값입니다.
[in] pCallback
Print Spooler 호스팅 구성 요소가 애플리케이션을 다시 호출하는 데 사용할 개체에 대한 포인터입니다. NULL이 되어서는 안 됩니다.
[out] phNotify
등록을 나타내는 구조체에 대한 포인터입니다.
반환 값
HRESULT | 심각도 | 의미 |
---|---|---|
S_OK | SUCCESS | 함수가 성공적으로 완료되었습니다. |
ALREADY_REGISTERED | 오류 | 등록 개체가 이미 등록되었습니다. |
LOCAL_ONLY_REGISTRATION | SUCCESS | 로컬 알림 등록에 성공했습니다. 원격 알림 등록이 아닙니다. |
MAX_REGISTRATION_COUNT_EXCEEDED | 오류 | 최대 등록 수에 도달했습니다. 더 이상 등록이 허용되지 않습니다. |
REMOTE_ONLY_REGISTRATION | SUCCESS | 원격 알림 등록에 성공했습니다. 로컬 알림 등록이 아닙니다. |
반환 값은 COM 오류 코드입니다. 이 함수는 작업을 성공적으로 완료할 수 있지만 S_OK 이외의 HRESULT를 반환할 수 있으므로 SUCCEEDED 또는 FAILED 매크로를 사용하여 호출의 성공을 결정해야 합니다. 함수에서 반환된 특정 HRESULT를 얻으려면 HRESULT_CODE 매크로를 사용합니다.
다음 코드 예제에서는 이러한 매크로를 사용하여 반환 값을 평가하는 방법을 보여 줍니다.
if (SUCCEEDED(hr)) {
// Call succeeded, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case S_OK:
// Some action
break;
case LOCAL_ONLY_REGISTRATION:
// Some action
break;
case REMOTE_ONLY_REGISTRATION:
// Some action
break;
default:
// Default action
break;
}
} else {
// Call failed, check HRESULT value returned
switch (HRESULT_CODE(hr)){
case ALREADY_REGISTERED:
// Some action
break;
case MAX_REGISTRATION_COUNT_EXCEEDED:
// Some action
break;
default:
// Default action
break;
}
}
COM 오류 코드에 관한 자세한 내용은 오류 처리를 참조하세요.
다른 가능한 반환 값 은 PrintAsyncNotifyError 를 참조하세요.
설명
RegisterForPrintAsyncNotifications 호출의 결과로 pCallback 개체에 대해 IUnknown::AddRef 메서드가 호출됩니다. UnRegisterForPrintAsyncNotifications를 호출하면 pCallback 개체가 해제됩니다. pCallback 개체의 참조 횟수도 채널이 만들어지고 채널이 닫혀 있을 때 감소할 때 증가합니다.
pSchema 매개 변수는 스풀러가 수신기 클라이언트를 필터링하는 데 수락하고 사용하는 GUID 포인터입니다. 스풀러 비동기 알림 메커니즘의 모든 클라이언트는 자체 알림 유형을 정의할 수 있습니다. 스풀러는 전송된 알림 유형을 인식하지 못하더라도 알림 유형에 따라 수신기 클라이언트를 필터링합니다. pSchema가 참조하는 알림 스키마는 IPrintAsyncNotifyDataObject를 노출하는 알림 개체에서 사용하는 스키마입니다. 스풀러 알림 파이프의 클라이언트는 자체 데이터 스키마를 정의할 수 있으며 모든 데이터 형식을 앞뒤로 보낼 수 있으며 pSchema 에서 참조하는 GUID는 해당 데이터 스키마에 고유합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | prnasnot.h |
라이브러리 | WinSpool.lib |
DLL | Spoolss.dll |