ファイルを開くダイアログにコントロールを追加する

#define CLSID_FileOpenDialog "{DC1C5A9C-E88A-4dde- […]

#define CLSID_FileOpenDialog "{DC1C5A9C-E88A-4dde- […]

#define CLSID_FileOpenDialog "{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}"
#define IID_IFileOpenDialog "{d57c7288-d4ad-4768-be02-9d969532d960}"
#usecom IFileOpenDialog IID_IFileOpenDialog CLSID_FileOpenDialog
#comfunc IFileOpenDialog_QueryInterface 0 int, int
#comfunc IFileOpenDialog_Show 3 int
#comfunc IFileOpenDialog_SetFileTypes 4 int, var
#comfunc IFileOpenDialog_SetFileTypeIndex 5 int
#comfunc IFileOpenDialog_GetFileTypeIndex 6 int
#comfunc IFileOpenDialog_Advise 7 int, int
#comfunc IFileOpenDialog_Unadvise 8 int, int
#comfunc IFileOpenDialog_SetOptions 9 int
#comfunc IFileOpenDialog_GetOptions 10 var
#comfunc IFileOpenDialog_SetDefaultFolder 11 int
#comfunc IFileOpenDialog_SetFolder 12 int
#comfunc IFileOpenDialog_GetFolder 13 int
#comfunc IFileOpenDialog_GetCurrentSelection 14 int
#comfunc IFileOpenDialog_SetFileName 15 int
#comfunc IFileOpenDialog_GetFileName 16 int
#comfunc IFileOpenDialog_SetTitle 17 wstr
#comfunc IFileOpenDialog_SetOkButtonLabel 18 wstr
#comfunc IFileOpenDialog_SetFileNameLabel 19 wstr
#comfunc IFileOpenDialog_GetResult 20 var
#comfunc IFileOpenDialog_AddPlace 21 var, int
#comfunc IFileOpenDialog_SetDefaultExtension 22 wstr
#comfunc IFileOpenDialog_Close 23 var
#comfunc IFileOpenDialog_ClearClientData 24
#comfunc IFileOpenDialog_SetFilter 25 var
#comfunc IFileOpenDialog_GetResults 26 var
#comfunc IFileOpenDialog_GetSelectedItems 27 var
#define IID_IUnknown "{00000000-0000-0000-C000-000000000046}"
#define IID_IFileDialogCustomize "{e6fdd21a-163f-4975-9c8c-a69f1ba37034}"
#usecom IFileDialogCustomize IID_IFileDialogCustomize CLSID_FileOpenDialog
#comfunc IFileDialogCustomize_EnableOpenDropDown 3 int
#comfunc IFileDialogCustomize_AddMenu 4 int, wstr
#comfunc IFileDialogCustomize_AddPushButton 5 int, wstr
#comfunc IFileDialogCustomize_AddComboBox 6 int
#comfunc IFileDialogCustomize_AddRadioButtonList 7 int
#comfunc IFileDialogCustomize_AddCheckButton 8 int, wstr, int
#comfunc IFileDialogCustomize_AddEditBox 9 int, wstr
#comfunc IFileDialogCustomize_AddSeparator 10 int
#comfunc IFileDialogCustomize_AddText 11 int, wstr
#comfunc IFileDialogCustomize_SetControlLabel 12 int, wstr
#comfunc IFileDialogCustomize_GetControlState 13 int, var
#comfunc IFileDialogCustomize_SetControlState 14 int, int
#comfunc IFileDialogCustomize_GetEditBoxText 15 int, var
#comfunc IFileDialogCustomize_SetEditBoxText 16 int, wstr
#comfunc IFileDialogCustomize_GetCheckButtonState 17 int, var
#comfunc IFileDialogCustomize_SetCheckButtonState 18 int, int
#comfunc IFileDialogCustomize_AddControlItem 19 int, int, wstr
#comfunc IFileDialogCustomize_RemoveControlItem 20 int, int
#comfunc IFileDialogCustomize_RemoveAllControlItems 21 int
#comfunc IFileDialogCustomize_GetControlItemState 22 int, int, var
#comfunc IFileDialogCustomize_SetControlItemState 23 int, int, int
#comfunc IFileDialogCustomize_GetSelectedControlItem 24 int, var
#comfunc IFileDialogCustomize_SetSelectedControlItem 25 int, int
#comfunc IFileDialogCustomize_StartVisualGroup 26 int, wstr
#comfunc IFileDialogCustomize_EndVisualGroup 27
#comfunc IFileDialogCustomize_MakeProminent 28 int
#comfunc IFileDialogCustomize_SetControlItemText 29 int, int, wstr
#uselib "rpcrt4"
#func UuidFromStringA "UuidFromStringA" str, int
//typedef enum CDCONTROLSTATE {
#enum CDCS_INACTIVE = 0x00000000
#enum CDCS_ENABLED = 0x00000001
#enum CDCS_VISIBLE = 0x00000002
#enum CDCS_ENABLEDVISIBLE = 0x00000003
//} CDCONTROLSTATE;
screen 0
title "HSP"
button gosub "", *ShowDialog
stop
*ShowDialog
newcom pFod, IFileOpenDialog
//IFileOpenDialog IFileDialogCustomize使
string=IID_IFileDialogCustomize: string=strmid(string, 1, strlen(IID_IFileDialogCustomize)-2)
dim iid, 4: UuidFromStringA string, varptr(iid)
IFileOpenDialog_QueryInterface pFod, varptr(iid), varptr(_pFdc)
newcom pFdc, IFileDialogCustomize, -1, _pFdc
IFileOpenDialog_SetTitle pFod, "HSP"
IFileOpenDialog_SetOkButtonLabel pFod, ""
IFileOpenDialog_SetFileNameLabel pFod, ":"
//
#define IDC_LABEL1 1000
#define IDC_LABEL2 1001
#define IDC_BUTTON1 1100
#define IDC_EDIT1 1200
#define IDC_CHECK1 1300
#define IDC_CHECK2 1301
#define IDC_RADIO1 1400
#define IDC_COMBO1 1500
#define IDC_MENU1 1600
#define IDC_SEP1 1700
#define IDC_SEP2 1701
#define IDC_GROUP1 1800
#define IDC_GROUP2 1801
#define IDM_ITEM1 2000
#define IDM_ITEM2 2001
#define IDM_ITEM3 2002
#define IDM_ITEM4 2003
#define IDM_ITEM5 2004
#define IDM_ITEM6 2005
IFileDialogCustomize_AddText pFdc, IDC_LABEL1, ""
IFileDialogCustomize_AddText pFdc, IDC_LABEL2, "ω`)"
IFileDialogCustomize_AddPushButton pFdc, IDC_BUTTON1, ""
IFileDialogCustomize_StartVisualGroup pFdc, IDC_GROUP1, ":"
IFileDialogCustomize_AddPushButton pFdc, IDC_BUTTON2, ""
IFileDialogCustomize_SetControlState pFdc, IDC_BUTTON2, CDCS_VISIBLE
IFileDialogCustomize_AddEditBox pFdc, IDC_EDIT1, ""
IFileDialogCustomize_AddSeparator pFdc, IDC_SEP1
IFileDialogCustomize_AddCheckButton pFdc, IDC_CHECK1, "1", 0
IFileDialogCustomize_AddCheckButton pFdc, IDC_CHECK2, "2", 1
IFileDialogCustomize_AddSeparator pFdc, IDC_SEP2
IFileDialogCustomize_AddRadioButtonList pFdc, IDC_RADIO1
IFileDialogCustomize_AddControlItem pFdc, IDC_RADIO1, IDM_ITEM1, "1"
IFileDialogCustomize_AddControlItem pFdc, IDC_RADIO1, IDM_ITEM2, "2"
IFileDialogCustomize_EndVisualGroup pFdc
IFileDialogCustomize_StartVisualGroup pFdc, IDC_GROUP2, "2:"
IFileDialogCustomize_AddComboBox pFdc, IDC_COMBO1
IFileDialogCustomize_AddControlItem pFdc, IDC_COMBO1, IDM_ITEM3, "1"
IFileDialogCustomize_AddControlItem pFdc, IDC_COMBO1, IDM_ITEM4, "2"
IFileDialogCustomize_AddMenu pFdc, IDC_MENU1, ""
IFileDialogCustomize_AddControlItem pFdc, IDC_MENU1, IDM_ITEM5, "1"
IFileDialogCustomize_AddControlItem pFdc, IDC_MENU1, IDM_ITEM6, "2"
IFileDialogCustomize_EndVisualGroup pFdc
IFileOpenDialog_Show pFod, hwnd
delcom pFdc
delcom pFod
return
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX