前回の続き
自作のFDKからマスターページの適用のfcodeを送っても、表示されるアラートを消すことができない。
どうやらnotificationが送られていないのが原因らしい。
結局はhWndを取得してキーコードを送るしかない。
2010年10月24日日曜日
2010年10月6日水曜日
FDKを使用してアラートの取得
FrameMaker Developer's Forumで面白い投稿があったのでメモ。
画像が表示できませんやマスターページを適用しますかといったアラートをFDKで取得し、自動ではいを押すプログラムです。
ここで使用されているFP_ActiveAlertはリファレンスにも載っていない実験的なプロパティみたいです。
#include "fapi.h" #include "fdetypes.h" #include "futils.h" VoidT F_ApiInitialize(IntT init) { if (init == FA_Init_First) { F_ApiNotification(FA_Note_Alert, True); F_ApiBailOut(); } } VoidT F_ApiNotify(IntT notification, F_ObjHandleT docId, StringT filename, IntT iparm) { F_ObjHandleT alertId; IntT uniq; switch (notification) { case FA_Note_Alert: // Get the id of the alert. alertId = F_ApiGetId(0, FV_SessionId, FP_ActiveAlert); uniq = F_ApiGetInt(FV_SessionId, alertId, FP_Unique); // If the alert is "Cannot display some imported graphics...", supppress it. switch(uniq) { case 40086: //"Cannot display some imported graphics..." case 40090: //"Cannot display some imported graphics..." case 46001: //Suppress ApplyMasterpages message F_ApiReturnValue(FR_YesOperation); break ; case 0: //Unfortunately no ID for "The font information changed..." if (F_StrCmp(filename, (StringT)"The font information for your system has changed. This change may affect the format and output of your document(s).")) F_ApiReturnValue(FR_YesOperation); if (F_StrCmp(filename, (StringT)"Die Schriftinformation für Ihr System hat sich geändert. Diese Änderung kann sich auf Formatierung und Ausgabe Ihrer Dokumente auswirken.")) F_ApiReturnValue(FR_YesOperation); break; default: break; } break; default: break; } F_ApiBailOut(); }
登録:
投稿 (Atom)