| void DoOpenCommand() {
 OSErr          er;
 NavReplyRecord    reply;
 NavDialogOptions   dialogOptions;
 NavTypeListHandle  typeList;
 Point              dialogPosition = {-1,-1};
 
 typeList = (NavTypeListHandle)GetResource(’open’, 128);
 // openリソースをそのまま利用する
 //シングルクォーテーションは半角で入力してください
 
 dialogOptions.version = kNavDialogOptionsVersion;
 //このメンバにはきめられた定数を設定
 dialogOptions.dialogOptionFlags = kNavDefaultNavDlogOptions;
 //ダイアログの各種設定
 dialogOptions.location = dialogPosition;
 //ダイアログボックスの位置
 CopyCString(dialogOptions.clientName, (unsigned char*)"TextDraw IV - Carbonized");
 //クライアント名
 CopyCString(dialogOptions.windowTitle, (unsigned char*)"ファイルを開く");
 //タイトルバーの文字列
 CopyCString(dialogOptions.actionButtonLabel, (unsigned char*)"開く");  //ボタン名
 CopyCString(dialogOptions.cancelButtonLabel, (unsigned char*)"なにもしない");   //ボタン名
 CopyCString(dialogOptions.savedFileName, (unsigned char*)"12345");
 //保存ファイル名の既定値
 CopyCString(dialogOptions.message, (unsigned char*)"複数のファイルを選択することもできます");
 //メッセージ
 dialogOptions.preferenceKey = NULL;
 //プリファレンスを使わないならNULLL
 dialogOptions.popupExtension = NULL;
 //ポップアップメニューを拡張しないならNULL
 
 er = NavChooseFile (NULL, &reply, &dialogOptions, NULL, NULL, NULL, typeList, NULL);
 //ダイアログボックスを表示
 if(er == noErr && reply.validRecord)    {   //ファイル選択が行われたなら
 long  count, index;
 er = AECountItems(&(reply.selection), &count);  //選択されたファイルの個数を得る
 if ( er == noErr) {
 for (index = 1; index <= count; index++)  {    //1つ1つのファイルを取得する
 AEKeyword     theKeyword;
 DescType       actualType;
 Size            actualSize;
 FSSpec         documentFSSpec;
 
 er = AEGetNthPtr(&(reply.selection), index, typeFSS, &theKeyword,
 &actualType,&documentFSSpec, sizeof(FSSpec), &actualSize);
 if (er == noErr)
 LoadFromFile(&documentFSSpec);   //ファイルを開く
 }
 }
 er = NavDisposeReply(&reply);
 ReleaseResource((Handle)typeList);
 }
 }
 |