설치 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참조하세요.