캐비닛 콜백 루틴 만들기
설치 API는 기본 캐비닛 콜백 루틴을 제공하지 않으므로 루틴을 제공해야 합니다. SetupIterateCabinet 함수에 필요한 콜백 루틴은 FileCallback에서 가리키는 것과 동일한 형식이어야 합니다.
다음은 SetupIterateCabinet 이 콜백 루틴에 알림을 보내는 데 사용하는 구문입니다.
MsgHandler( //the specified callback routine
Context, //context used by the callback routine
Notification, //cabinet notification
Param1, //additional notification information
Param2 //additional notification information
);
Context 매개 변수는 콜백 루틴에서 콜백 루틴에 대한 후속 호출 사이에 유지해야 하는 정보를 저장하는 데 사용할 수 있는 컨텍스트 변수 또는 구조체에 대한 void 포인터입니다.
이 컨텍스트의 구현은 콜백 루틴에 의해 지정되며 SetupIterateCabinet에 의해 참조되거나 변경되지 않습니다.
Notification 매개 변수는 부호 없는 정수이며 다음 값 중 하나가 됩니다.
알림 | 설명 |
---|---|
SPFILENOTIFY_FILEEXTRACTED | 파일이 캐비닛에서 추출되었습니다. |
SPFILENOTIFY_FILEINCABINET | 캐비닛에 파일이 있습니다. |
SPFILENOTIFY_NEEDNEWCABINET | 현재 파일은 다음 캐비닛에서 계속됩니다. |
마지막 두 매개 변수 Param1 및 Param2도 부호 없는 정수이며 알림과 관련된 추가 정보를 포함합니다. SetupIterateCabinet에서 보낸 알림에 대한 자세한 내용은 캐비닛 파일 알림을 참조하세요.
SP_FILE_NOTIFY_CALLBACK 루틴은 부호 없는 정수 를 반환합니다. 캐비닛 콜백 루틴은 알림에 따라 다음 값 중 하나를 반환해야 합니다.
SPFILENOTIFY_FILEINCABINET 알림의 경우 SetupIterateCabinet 은 콜백 루틴에서 다음 값 중 하나가 반환되어야 합니다.
값 | 의미 |
---|---|
FILEOP_ABORT | 캐비닛 처리를 중단합니다. |
FILEOP_DOIT | 현재 파일을 추출합니다. |
FILEOP_SKIP | 현재 파일을 건너뜁니다. |
SPFILENOTIFY_NEEDNEWCABINET 및 SPFILENOTIFY_FILEEXTRACTED 알림의 경우 SetupIterateCabinet 은 콜백 루틴에서 다음 값 중 하나가 반환되어야 합니다.
값 | 의미 |
---|---|
NO_ERROR | 오류가 발생하지 않았으며 캐비닛을 계속 처리합니다. |
ERROR_XXX | 지정된 형식의 오류가 발생했습니다. SetupIterateCabinet 함수는 FALSE를 반환하고 지정된 오류 코드는 GetLastError 호출에 의해 반환됩니다. |
콜백 루틴이 FILEOP_DOIT 반환하는 경우 루틴은 전체 대상 경로도 제공해야 합니다. 자세한 내용은 SPFILENOTIFY_FILEINCABINET 참조 하세요.