RSELSTR_FUNC(Bool32) RSELSTR_SetImportData(uint32_t dwType, void * pData) { Bool32 rc = TRUE; gwRC = 0; #define CASE_DATA(a,b,c) case a: c = *(b *)pData; break #define CASE_PDATA(a,b,c) case a: c = (b)pData; break switch(dwType) { CASE_PDATA(RSELSTR_FNRSELSTR_ProgressStart, FNRSELSTR_ProgressStart ,fnProgressStart_rsel); CASE_PDATA(RSELSTR_FNRSELSTR_ProgressStep, FNRSELSTR_ProgressStep, fnProgressStep_rsel); CASE_PDATA(RSELSTR_FNRSELSTR_ProgressFinish, FNRSELSTR_ProgressFinish,fnProgressFinish_rsel); default: SetReturnCode_rselstr(IDS_ERR_NOTIMPLEMENT); rc = FALSE; } #undef CASE_DATA #undef CASE_PDATA return rc; }
PUMA_FUNC(Bool) PUMA_SetImportData(uint32_t dwType, void * pData) { Bool rc = TRUE; gwRC = 0; #define CASE_DATA(a,b,c) case a: c = *(b *)pData; break #define CASE_DATAUP(a,b,c,d) case a: if(c != *(b *)pData){c = *(b *)pData; SetUpdate(d,FLG_UPDATE_NO);}; break #define CASE_PDATA(a,b,c) case a: c = (b)pData; break switch(dwType) { CASE_DATAUP(PUMA_Word32_Language,uint32_t,gnLanguage,FLG_UPDATE_CCOM); CASE_DATA(PUMA_Bool32_Speller,Bool32,gbSpeller); CASE_DATAUP(PUMA_Bool32_OneColumn,Bool32,gbOneColumn,FLG_UPDATE_CPAGE); CASE_DATAUP(PUMA_Bool32_Fax100,Bool32,gbFax100,FLG_UPDATE_CCOM); CASE_DATAUP(PUMA_Bool32_DotMatrix,Bool32,gbDotMatrix,FLG_UPDATE_CCOM); CASE_DATA(PUMA_Bool32_Bold,Bool32,gbBold); CASE_DATA(PUMA_Bool32_Italic,Bool32,gbItalic); CASE_DATA(PUMA_Bool32_Size,Bool32,gbSize); CASE_DATA(PUMA_Bool32_Format,Bool32,gbFormat); CASE_PDATA(PUMA_pchar_UserDictName,char *,gpUserDictName); CASE_PDATA(PUMA_pchar_SerifName,char *,gpSerifName); CASE_PDATA(PUMA_pchar_SansSerifName,char *,gpSansSerifName); CASE_PDATA(PUMA_pchar_CourierName,char *,gpCourierName); CASE_DATAUP(PUMA_Word32_Pictures,uint32_t,gnPictures,FLG_UPDATE_CPAGE); CASE_DATAUP(PUMA_Word32_Tables,uint32_t,gnTables,FLG_UPDATE_CPAGE); CASE_DATA(PUMA_Word32_Format,Bool32,gnFormat); CASE_DATA(PUMA_Word8_Format,uchar,gnUnrecogChar); CASE_PDATA(PUMA_FNPUMA_ProgressStart, FNPUMA_ProgressStart ,fnProgressStart); CASE_PDATA(PUMA_FNPUMA_ProgressFinish,FNPUMA_ProgressFinish,fnProgressFinish); CASE_PDATA(PUMA_FNPUMA_ProgressStep, FNPUMA_ProgressStep ,fnProgressStep); CASE_DATAUP(PUMA_Bool32_AutoRotate,Bool32,gbAutoRotate,FLG_UPDATE); CASE_DATA(PUMA_Handle_CurrentEdPage,Handle,ghEdPage); default: SetReturnCode_puma(IDS_ERR_NOTIMPLEMENT); rc = FALSE; } // Связь с предыдущими версиями switch(dwType) { case PUMA_Bool32_Format: gnFormat = gbFormat ? gnFormat : 64; break; case PUMA_Word32_Format: gbFormat = gnFormat==64 ? 0 : 1; break; } #undef CASE_DATA #undef CASE_PDATA return rc; }