インポート・エクスポート時のファイル拡張子を追加する

 

インポート・エクスポート時のファイル拡張子を追加する

説明

開くや結合などのインポート時や、2D・3D上での別名保存などのエクスポート時のダイアログに任意のファイル拡張子を追加して処理する方法を紹介します


// インポート時のコールバック関数
GSErrCode __ACENV_CALL Do_Import(const API_IOParams* ioParams)
{
	GSErrCode err = NoError;

	switch (ioParams->method)
	{
	case IO_OPEN:
	case IO_MERGE:
	case IO_IMPORT:
	{
		// do something
	}
	break;

	}
	return NoError;
}

// エクスポート時のコールバック関数
GSErrCode __ACENV_CALL Do_Export(const API_IOParams* ioParams)
{
	GSErrCode err = NoError;

	switch (ioParams->method)
	{
	case IO_SAVEAS:
	case IO_SAVEAS3D:
	{
		// do something
	}
	break;
	}

	return NoError;
}




GSErrCode	__ACENV_CALL	RegisterInterface (void)
{
	GSErrCode err = NoError;

    // ファイル拡張子を追加する場面を指定します
	// インポート用
	API_IOMethod openMethodFlag = Open2DSupported +
								  Merge2DSupported +
								  SaveAs2DSupported +
								  Import2DDrawingSupported;
	// エクスポート用
	API_IOMethod saveMethodFlag = SaveAs3DSupported + SaveAs2DOwnWindowSupported;

	// 拡張子を追加
	err = ACAPI_Register_FileType(1, 'TEXT', '    ', "test;", 0, 32500, 1, openMethodFlag);
	err = ACAPI_Register_FileType(2, 'TEXT', '    ', "test;", 0, 32500, 2, saveMethodFlag);
}


GSErrCode __ACENV_CALL	Initialize (void)
{
	GSErrCode err = NoError;

	// コールバック関数を指定
	err = ACAPI_Install_FileTypeHandler ( 1, Do_Import );
	err = ACAPI_Install_FileTypeHandler ( 2, Do_Export );

	return err;
}

'STR#' 32500 "Strings" {
/* [ 1] */ "Import text file"
/* [ 2] */ "Export text file"
}