Index: branches/egtra/ab5.0/abdev/abdev-impl/Resource/Load.cpp
===================================================================
--- branches/egtra/ab5.0/abdev/abdev-impl/Resource/Load.cpp	(revision 796)
+++ branches/egtra/ab5.0/abdev/abdev-impl/Resource/Load.cpp	(revision 797)
@@ -35,5 +35,18 @@
 }
 
-void* GetResource(HINSTANCE hinst, USHORT id, LPCTSTR type)
+HICON LoadIconCursorImpl(HINSTANCE hinst, USHORT id, int cxDesired, int cyDesired, UINT load, bool isIcon)
+{
+	auto pResource = LoadResourceAlt(hinst, id, isIcon ? RT_GROUP_ICON : RT_GROUP_CURSOR);
+
+	auto idIcon = LookupIconIdFromDirectoryEx(reinterpret_cast<PBYTE>(pResource), isIcon, cxDesired, cyDesired, load);
+	auto icon = LoadResourceAltWithSize(hinst, numeric_cast<USHORT>(idIcon), isIcon ? RT_ICON : RT_CURSOR);
+
+	return CreateIconFromResourceEx(reinterpret_cast<PBYTE>(icon.first),
+		icon.second, isIcon, 0x00030000, cxDesired, cyDesired, load);
+}
+
+} // unnamed namespace
+
+void* LoadResourceAlt(HINSTANCE hinst, USHORT id, LPCTSTR type)
 {
 	if (auto hrsrc = ::FindResource(hinst, MAKEINTRESOURCE(id), type))
@@ -47,5 +60,5 @@
 }
 
-std::pair<void*, DWORD> GetResourceWithSize(HINSTANCE hinst, USHORT id, LPCTSTR type)
+std::pair<void*, DWORD> LoadResourceAltWithSize(HINSTANCE hinst, USHORT id, LPCTSTR type)
 {
 	typedef std::pair<void*, DWORD> result_type;
@@ -64,17 +77,4 @@
 	return result_type(nullptr, 0);
 }
-
-HICON LoadIconCursorImpl(HINSTANCE hinst, USHORT id, int cxDesired, int cyDesired, UINT load, bool isIcon)
-{
-	auto pResource = GetResource(hinst, id, isIcon ? RT_GROUP_ICON : RT_GROUP_CURSOR);
-
-	auto idIcon = LookupIconIdFromDirectoryEx(reinterpret_cast<PBYTE>(pResource), isIcon, cxDesired, cyDesired, load);
-	auto icon = GetResourceWithSize(hinst, numeric_cast<USHORT>(idIcon), isIcon ? RT_ICON : RT_CURSOR);
-
-	return CreateIconFromResourceEx(reinterpret_cast<PBYTE>(icon.first),
-		icon.second, isIcon, 0x00030000, cxDesired, cyDesired, load);
-}
-
-} // unnamed namespace
 
 HICON LoadIconAlt(HINSTANCE hinst, USHORT id, int cxDesired, int cyDesired, UINT load)
@@ -152,5 +152,5 @@
 	using namespace boost::adaptors;
 
-	auto accel = GetResourceWithSize(hinst, id, RT_ACCELERATOR);
+	auto accel = LoadResourceAltWithSize(hinst, id, RT_ACCELERATOR);
 	if (accel.first == nullptr)
 	{
@@ -173,10 +173,10 @@
 HMENU LoadMenuAlt(HINSTANCE hinst, USHORT id)
 {
-	return LoadMenuIndirect(GetResource(hinst, id, RT_MENU));
+	return LoadMenuIndirect(LoadResourceAlt(hinst, id, RT_MENU));
 }
 
 INT_PTR DialogBoxAlt(HINSTANCE hinst, USHORT id, HWND hwndParent, DLGPROC dialogFunc, LPARAM initParam)
 {
-	auto dlgTemplate = static_cast<DLGTEMPLATE*>(GetResource(hinst, id, RT_DIALOG));
+	auto dlgTemplate = static_cast<DLGTEMPLATE*>(LoadResourceAlt(hinst, id, RT_DIALOG));
 	return ::DialogBoxIndirectParam(hinst, dlgTemplate, hwndParent, dialogFunc, initParam);
 }
@@ -184,5 +184,5 @@
 HWND CreateDialogAlt(HINSTANCE hinst, USHORT id, HWND hwndParent, DLGPROC dialogFunc, LPARAM initParam)
 {
-	auto dlgTemplate = static_cast<DLGTEMPLATE*>(GetResource(hinst, id, RT_DIALOG));
+	auto dlgTemplate = static_cast<DLGTEMPLATE*>(LoadResourceAlt(hinst, id, RT_DIALOG));
 	return ::CreateDialogIndirectParam(hinst, dlgTemplate, hwndParent, dialogFunc, initParam);
 }
@@ -191,5 +191,5 @@
 {
 	WTL::CDC dc = ::GetDC(nullptr);
-	auto pbi = static_cast<BITMAPINFO const*>(GetResource(hinst, id, RT_BITMAP));
+	auto pbi = static_cast<BITMAPINFO const*>(LoadResourceAlt(hinst, id, RT_BITMAP));
 	return CreateDIBitmap(dc, &pbi->bmiHeader, CBM_INIT, reinterpret_cast<BYTE const*>(pbi) + pbi->bmiHeader.biSize, pbi, DIB_RGB_COLORS);
 }
Index: branches/egtra/ab5.0/abdev/abdev-impl/Resource/Load.h
===================================================================
--- branches/egtra/ab5.0/abdev/abdev-impl/Resource/Load.h	(revision 796)
+++ branches/egtra/ab5.0/abdev/abdev-impl/Resource/Load.h	(revision 797)
@@ -1,4 +1,5 @@
 #pragma once
 
+#include <utility>
 #include <memory>
 #include <windows.h>
@@ -6,4 +7,7 @@
 
 namespace ActiveBasic { namespace Resource {
+
+void* LoadResourceAlt(HINSTANCE hinst, USHORT id, LPCTSTR type);
+std::pair<void*, DWORD> LoadResourceAltWithSize(HINSTANCE hinst, USHORT id, LPCTSTR type);
 
 HICON LoadIconAlt(HINSTANCE hinst, USHORT id, int cxDesired, int cyDesired, UINT load = 0);
Index: branches/egtra/ab5.0/abdev/abdev/DialogBoxes.cpp
===================================================================
--- branches/egtra/ab5.0/abdev/abdev/DialogBoxes.cpp	(revision 796)
+++ branches/egtra/ab5.0/abdev/abdev/DialogBoxes.cpp	(revision 797)
@@ -502,24 +502,24 @@
 void DlgNewProjectWizard(HWND hwnd){
 #define MAX_NEWPROJECTPAGE 3
-	PROPSHEETHEADER psh;
-	PROPSHEETPAGE psp;
-	HPROPSHEETPAGE hpsp[MAX_NEWPROJECTPAGE];
+	PROPSHEETHEADER psh = {};
+	PROPSHEETPAGE psp = {};
+	HPROPSHEETPAGE hpsp[MAX_NEWPROJECTPAGE] = {};
 	int i;
 
-	psp.dwSize=sizeof(PROPSHEETPAGE);
-	psp.hInstance=hResInst;
-	psp.dwFlags=PSP_DEFAULT;
+	psp.dwSize = sizeof(PROPSHEETPAGE);
+	psp.hInstance = GetWindowInstance(hwnd);
+	psp.dwFlags = PSP_DLGINDIRECT;
 
 	//各ページのセッティング
 	i=0;
-	psp.pszTemplate=MAKEINTRESOURCE(IDD_NEWPROJECT_PAGE1);
+	psp.pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_NEWPROJECT_PAGE1, RT_DIALOG));
 	psp.pfnDlgProc=DlgNewProject_Page1;
 	hpsp[i]=CreatePropertySheetPage(&psp);
 	i++;
-	psp.pszTemplate=MAKEINTRESOURCE(IDD_NEWPROJECT_PAGE2);
+	psp.pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_NEWPROJECT_PAGE2, RT_DIALOG));
 	psp.pfnDlgProc=DlgNewProject_Page2;
 	hpsp[i]=CreatePropertySheetPage(&psp);
 	i++;
-	psp.pszTemplate=MAKEINTRESOURCE(IDD_NEWPROJECT_PAGE3);
+	psp.pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_NEWPROJECT_PAGE3, RT_DIALOG));
 	psp.pfnDlgProc=DlgNewProject_Page3;
 	hpsp[i]=CreatePropertySheetPage(&psp);
@@ -967,7 +967,7 @@
 }
 void DlgProjectOptionSetting(HWND hwnd){
-	PROPSHEETHEADER psh;
-	PROPSHEETPAGE psp[MAX_PJSETDLG];
-	HPROPSHEETPAGE hpsp[MAX_PJSETDLG];
+	PROPSHEETHEADER psh = {};
+	PROPSHEETPAGE psp[MAX_PJSETDLG] = {};
+	HPROPSHEETPAGE hpsp[MAX_PJSETDLG] = {};
 	int i;
 	memset(&SetSwitch,0,MAX_PJSETDLG);
@@ -976,29 +976,29 @@
 	i=0;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_PJ_OPTION1);
-	psp[i].pfnDlgProc=(DLGPROC)DlgProjectOption_Whole;
+	psp[i].dwFlags = PSP_DLGINDIRECT;
+	psp[i].hInstance = GetWindowInstance(hwnd);
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_PJ_OPTION1, RT_DIALOG));
+	psp[i].pfnDlgProc = DlgProjectOption_Whole;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_PJ_OPTION2);
-	psp[i].pfnDlgProc=(DLGPROC)DlgProjectOption_Win32API;
+	psp[i].dwFlags=PSP_DLGINDIRECT;
+	psp[i].hInstance = GetWindowInstance(hwnd);
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_PJ_OPTION2, RT_DIALOG));
+	psp[i].pfnDlgProc = DlgProjectOption_Win32API;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_PJ_OPTION3);
-	psp[i].pfnDlgProc=(DLGPROC)DlgProjectOption_Manifest;
+	psp[i].dwFlags = PSP_DLGINDIRECT;
+	psp[i].hInstance = GetWindowInstance(hwnd);
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_PJ_OPTION3, RT_DIALOG));
+	psp[i].pfnDlgProc = DlgProjectOption_Manifest;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_PJ_OPTION4);
-	psp[i].pfnDlgProc=(DLGPROC)DlgProjectOption_Debug;
+	psp[i].dwFlags = PSP_DLGINDIRECT;
+	psp[i].hInstance = GetWindowInstance(hwnd);
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(ActiveBasic::Resource::LoadResourceAlt(hResInst, IDD_PJ_OPTION4, RT_DIALOG));
+	psp[i].pfnDlgProc = DlgProjectOption_Debug;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 
@@ -1955,9 +1955,17 @@
 	return 0;
 }
+PROPSHEETPAGE_RESOURCE LoadTest(HINSTANCE hinst, USHORT id, LPCTSTR type)
+{
+	auto t = ActiveBasic::Resource::LoadResourceAltWithSize(hResInst, id, type);
+	auto p = malloc(t.second);
+	memcpy(p, t.first, t.second);
+	return static_cast<PROPSHEETPAGE_RESOURCE>(p);
+}
 void DlgOptionSetting(HWND hwnd){
-	PROPSHEETHEADER psh;
+	HINSTANCE hinst = GetWindowInstance(hwnd);
+	PROPSHEETHEADER psh = {};
 #define MAX_SETDLG 32
-	PROPSHEETPAGE psp[MAX_SETDLG];
-	HPROPSHEETPAGE hpsp[MAX_SETDLG];
+	PROPSHEETPAGE psp[MAX_SETDLG] = {};
+	HPROPSHEETPAGE hpsp[MAX_SETDLG] = {};
 	int i;
 
@@ -1970,31 +1978,32 @@
 	i=0;
 
+
 	//各ページのセッティング
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_OPTION_WHOLE);
-	psp[i].pfnDlgProc=(DLGPROC)Dlg_Option_Whole;
+	psp[i].dwFlags=PSP_DLGINDIRECT;
+	psp[i].hInstance=hinst;
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(LoadTest(hResInst, IDD_OPTION_WHOLE, RT_DIALOG));
+	psp[i].pfnDlgProc=Dlg_Option_Whole;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_OPTION_EDITOR);
-	psp[i].pfnDlgProc=(DLGPROC)Dlg_Option_Editor;
+	psp[i].dwFlags=PSP_DLGINDIRECT;
+	psp[i].hInstance=hinst;
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(LoadTest(hResInst, IDD_OPTION_EDITOR, RT_DIALOG));
+	psp[i].pfnDlgProc=Dlg_Option_Editor;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_OPTION_COLOR);
-	psp[i].pfnDlgProc=(DLGPROC)Dlg_Option_Color;
+	psp[i].dwFlags=PSP_DLGINDIRECT;
+	psp[i].hInstance=hinst;
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(LoadTest(hResInst, IDD_OPTION_COLOR, RT_DIALOG));
+	psp[i].pfnDlgProc=Dlg_Option_Color;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_OPTION_TOOLBAR);
-	psp[i].pfnDlgProc=(DLGPROC)Dlg_Option_Toolbar;
+	psp[i].dwFlags=PSP_DLGINDIRECT;
+	psp[i].hInstance=hinst;
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(LoadTest(hResInst, IDD_OPTION_TOOLBAR, RT_DIALOG));
+	psp[i].pfnDlgProc=Dlg_Option_Toolbar;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 
@@ -2003,8 +2012,8 @@
 	i++;
 	psp[i].dwSize=sizeof(PROPSHEETPAGE);
-	psp[i].dwFlags=PSP_DEFAULT;
-	psp[i].hInstance=hResInst;
-	psp[i].pszTemplate=MAKEINTRESOURCE(IDD_OPTION_RAD);
-	psp[i].pfnDlgProc=(DLGPROC)Dlg_Option_Rad;
+	psp[i].dwFlags=PSP_DLGINDIRECT;
+	psp[i].hInstance=hinst;
+	psp[i].pResource = static_cast<PROPSHEETPAGE_RESOURCE>(LoadTest(hResInst, IDD_OPTION_RAD, RT_DIALOG));
+	psp[i].pfnDlgProc=Dlg_Option_Rad;
 	hpsp[i]=CreatePropertySheetPage(&psp[i]);
 #endif
