다음을 통해 공유


캐비닛 콜백 루틴 만들기

설치 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 현재 파일은 다음 캐비닛에서 계속됩니다.

 

마지막 두 매개 변수 Param1Param2도 부호 없는 정수이며 알림과 관련된 추가 정보를 포함합니다. 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 참조 하세요.