파일 타입 관리자에게 새로운 파일 타입 추가하기
다음은 파일 타입 관리 클래스를 어떻게 사용하는지 알려주는 간략한 예제입니다. 설명의 주요 관점은 파일 타입 관리자에게 파일 타입을 삽입하는 것을 목적으로 하는 개발자의 관점입니다.
- 당신의 파일 타입을 위해 콜백 함수를 생성합니다.
bool BMPTypeCallback(IChannel& ic, long* retVal) { UNUSED_PARAMETER(retVal); char buffer[2]; if (ic.ReadBin (buffer, 2) != NoError) return false; if (buffer[0] == 'B' && buffer[1] == 'M') return true; return false; }
- FileTypeManager 인스턴스를 생성합니다. FileTypeManager으로부터 당신만의 클래스로 상속할 필요가 없습니다.
FTM::FileTypeManager moduleTypeManager ("Module");
-
그룹 및 타입 추가 함수들에 의해 리턴된 id들을 위한 보관소를 생성합니다.
enum{ bmp, etc, typeCount }; FTM::TypeID typeID[typeCount]; enum{ image, vectorImage, rasterImage, groupCount }; FTM::GroupID groupID[groupCount];
- 데이터베이스에 그룹들을 추가합니다.
groupID[image] = moduleTypeManager.AddGroup ("Images", IO::FileTypeManager::RootGroup); groupID[rasterImage] = moduleTypeManager.AddGroup ("Raster Images" ,groupID[image]); groupID[vectorImage] = moduleTypeManager.AddGroup ("Vector Images" ,groupID[image]);
- 그룹들에 타입들을 추가합니다.
typeID[bmp] = moduleTypeManager.AddType (IO::FileType("Bitmap files", "bmp", 'GSAC', 'BMP', 145, BMPTypeCallback), groupID[rasterImage]);
-
선택적으로 당신은 다른 모듈들에 의해 생성된 그룹들에 당신의 파일 타입을 추가할 수 있습니다..
moduleTypeManager.AddTypeToGroup (typeID[bmp], someOtherGroup );