From 6186036f06fabbbaacc9ac2bf9a3f7416a4bd9c3 Mon Sep 17 00:00:00 2001 From: seraphy Date: Sun, 19 Jul 2015 18:17:39 +0900 Subject: [PATCH] =?utf8?q?20021009=E7=89=88=E3=82=BD=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Visual Studio 2013にビルド環境変更、ソースは未修整 --- .gitignore | 11 + CommDialog.cpp | 532 +++ CommDialog.h | 215 ++ CommDialog.rgs | 35 + Control.cpp | 1545 ++++++++ Control.h | 189 + Control.rgs | 26 + Draw.cpp | 271 ++ Draw.h | 85 + Draw.rgs | 26 + EnumSelect.rgs | 26 + Event.cpp | 204 + Event.h | 89 + Event.rgs | 26 + Form.cpp | 499 +++ Form.h | 113 + Form.rgs | 26 + Help/canvas.htm | 154 + Help/control.htm | 163 + Help/dialog.htm | 278 ++ Help/env.gif | Bin 0 -> 2071 bytes Help/event.htm | 94 + Help/evnt.gif | Bin 0 -> 1780 bytes Help/extrap.gif | Bin 0 -> 197 bytes Help/form.htm | 182 + Help/head.gif | Bin 0 -> 10488 bytes Help/hint.gif | Bin 0 -> 129 bytes Help/howtocreate.htm | 160 + Help/howtocreate2.htm | 165 + Help/hs.gif | Bin 0 -> 2067 bytes Help/index.htm | 95 + Help/instance.htm | 144 + Help/is.gif | Bin 0 -> 1823 bytes Help/lc.gif | Bin 0 -> 2251 bytes Help/make.gif | Bin 0 -> 1989 bytes Help/meslop.gif | Bin 0 -> 10205 bytes Help/met.gif | Bin 0 -> 1813 bytes Help/obj.gif | Bin 0 -> 1993 bytes Help/objects.htm | 70 + Help/objvector.htm | 110 + Help/ov.gif | Bin 0 -> 1792 bytes Help/overlapped.htm | 446 +++ Help/profile.htm | 52 + Help/prop.gif | Bin 0 -> 1880 bytes Help/seraphyscripttools.hhc | 124 + Help/seraphyscripttools.hhp | 29 + Help/shell.htm | 148 + Help/smp.gif | Bin 0 -> 1849 bytes Help/style.css | 5 + Help/tree.htm | 75 + Help/イベント.png | Bin 0 -> 26250 bytes Help/インストール.png | Bin 0 -> 26743 bytes Help/オブジェクト.png | Bin 0 -> 26683 bytes Help/サンプル.png | Bin 0 -> 26362 bytes Help/プロパティ.png | Bin 0 -> 26460 bytes Help/ヘッダ.png | Bin 0 -> 52630 bytes Help/メソッド.png | Bin 0 -> 26389 bytes Help/メッセージループ.png | Bin 0 -> 50749 bytes Help/使用許諾条件.png | Bin 0 -> 27862 bytes Help/動作環境.png | Bin 0 -> 27381 bytes Help/更新履歴.png | Bin 0 -> 27476 bytes Help/概要.png | Bin 0 -> 26773 bytes Help/生成方法.png | Bin 0 -> 26727 bytes Instance.cpp | 213 ++ Instance.h | 145 + Instance.rgs | 35 + Layer.cpp | 399 ++ Layer.h | 580 +++ Layer.rgs | 26 + ObjectMap.cpp | 365 ++ ObjectMap.h | 64 + ObjectMap.rgs | 26 + ObjectVector.cpp | 281 ++ ObjectVector.h | 63 + ObjectVector.rgs | 26 + OverlappedWindow.cpp | 2224 +++++++++++ OverlappedWindow.h | 396 ++ OverlappedWindow.rgs | 35 + ParseName.rgs | 26 + PrivateProfile.cpp | 59 + PrivateProfile.h | 43 + PrivateProfile.rgs | 26 + ProfileSection.cpp | 129 + ProfileSection.h | 44 + ProfileSection.rgs | 26 + SeraphyScriptTools.cpp | 109 + SeraphyScriptTools.def | 9 + SeraphyScriptTools.h | 7182 ++++++++++++++++++++++++++++++++++++ SeraphyScriptTools.idl | 795 ++++ SeraphyScriptTools.rc | 171 + SeraphyScriptTools.sln | 33 + SeraphyScriptTools.vcproj | 704 ++++ SeraphyScriptTools.vcxproj | 505 +++ SeraphyScriptTools.vcxproj.filters | 192 + SeraphyScriptToolsCP.h | 1115 ++++++ SeraphyScriptToolsps.def | 11 + Shell.cpp | 846 +++++ Shell.h | 168 + Shell.rgs | 26 + ShellExecObj.rgs | 26 + StdAfx.cpp | 12 + StdAfx.h | 35 + TestScript/bitmap.vbs | 61 + TestScript/blk1.bmp | Bin 0 -> 6966 bytes TestScript/class1.vbs | 55 + TestScript/class2.vbs | 89 + TestScript/clip1.vbs | 43 + TestScript/dlg1.vbs | 10 + TestScript/dlg2.vbs | 12 + TestScript/dlg3.vbs | 19 + TestScript/dllver.vbs | 15 + TestScript/draw1.vbs | 127 + TestScript/event1.vbs | 97 + TestScript/form1.vbs | 91 + TestScript/form2.vbs | 80 + TestScript/form3.vbs | 63 + TestScript/frame1.vbs | 48 + TestScript/key.vbs | 44 + TestScript/map.vbs | 24 + TestScript/pro1.vbs | 34 + TestScript/pro2.vbs | 31 + TestScript/sample1.vbs | 4 + TestScript/sample2.vbs | 7 + TestScript/sample3.vbs | 11 + TestScript/sample3b.vbs | 38 + TestScript/sample4.vbs | 18 + TestScript/sample5.vbs | 29 + TestScript/sfolder.vbs | 11 + TestScript/simple1.vbs | 10 + TestScript/simple2.vbs | 19 + TestScript/tree1.vbs | 62 + TestScript/tree_list.vbs | 150 + TestScript/wait1.vbs | 60 + TreeItem.cpp | 97 + TreeItem.h | 284 ++ TreeItem.rgs | 26 + commdial.bmp | Bin 0 -> 246 bytes generic.cpp | 58 + generic.h | 122 + instance.bmp | Bin 0 -> 246 bytes popupwin.bmp | Bin 0 -> 246 bytes resource.h | 52 + 142 files changed, 25583 insertions(+) create mode 100644 .gitignore create mode 100644 CommDialog.cpp create mode 100644 CommDialog.h create mode 100644 CommDialog.rgs create mode 100644 Control.cpp create mode 100644 Control.h create mode 100644 Control.rgs create mode 100644 Draw.cpp create mode 100644 Draw.h create mode 100644 Draw.rgs create mode 100644 EnumSelect.rgs create mode 100644 Event.cpp create mode 100644 Event.h create mode 100644 Event.rgs create mode 100644 Form.cpp create mode 100644 Form.h create mode 100644 Form.rgs create mode 100644 Help/canvas.htm create mode 100644 Help/control.htm create mode 100644 Help/dialog.htm create mode 100644 Help/env.gif create mode 100644 Help/event.htm create mode 100644 Help/evnt.gif create mode 100644 Help/extrap.gif create mode 100644 Help/form.htm create mode 100644 Help/head.gif create mode 100644 Help/hint.gif create mode 100644 Help/howtocreate.htm create mode 100644 Help/howtocreate2.htm create mode 100644 Help/hs.gif create mode 100644 Help/index.htm create mode 100644 Help/instance.htm create mode 100644 Help/is.gif create mode 100644 Help/lc.gif create mode 100644 Help/make.gif create mode 100644 Help/meslop.gif create mode 100644 Help/met.gif create mode 100644 Help/obj.gif create mode 100644 Help/objects.htm create mode 100644 Help/objvector.htm create mode 100644 Help/ov.gif create mode 100644 Help/overlapped.htm create mode 100644 Help/profile.htm create mode 100644 Help/prop.gif create mode 100644 Help/seraphyscripttools.hhc create mode 100644 Help/seraphyscripttools.hhp create mode 100644 Help/shell.htm create mode 100644 Help/smp.gif create mode 100644 Help/style.css create mode 100644 Help/tree.htm create mode 100644 Help/イベント.png create mode 100644 Help/インストール.png create mode 100644 Help/オブジェクト.png create mode 100644 Help/サンプル.png create mode 100644 Help/プロパティ.png create mode 100644 Help/ヘッダ.png create mode 100644 Help/メソッド.png create mode 100644 Help/メッセージループ.png create mode 100644 Help/使用許諾条件.png create mode 100644 Help/動作環境.png create mode 100644 Help/更新履歴.png create mode 100644 Help/概要.png create mode 100644 Help/生成方法.png create mode 100644 Instance.cpp create mode 100644 Instance.h create mode 100644 Instance.rgs create mode 100644 Layer.cpp create mode 100644 Layer.h create mode 100644 Layer.rgs create mode 100644 ObjectMap.cpp create mode 100644 ObjectMap.h create mode 100644 ObjectMap.rgs create mode 100644 ObjectVector.cpp create mode 100644 ObjectVector.h create mode 100644 ObjectVector.rgs create mode 100644 OverlappedWindow.cpp create mode 100644 OverlappedWindow.h create mode 100644 OverlappedWindow.rgs create mode 100644 ParseName.rgs create mode 100644 PrivateProfile.cpp create mode 100644 PrivateProfile.h create mode 100644 PrivateProfile.rgs create mode 100644 ProfileSection.cpp create mode 100644 ProfileSection.h create mode 100644 ProfileSection.rgs create mode 100644 SeraphyScriptTools.cpp create mode 100644 SeraphyScriptTools.def create mode 100644 SeraphyScriptTools.h create mode 100644 SeraphyScriptTools.idl create mode 100644 SeraphyScriptTools.rc create mode 100644 SeraphyScriptTools.sln create mode 100644 SeraphyScriptTools.vcproj create mode 100644 SeraphyScriptTools.vcxproj create mode 100644 SeraphyScriptTools.vcxproj.filters create mode 100644 SeraphyScriptToolsCP.h create mode 100644 SeraphyScriptToolsps.def create mode 100644 Shell.cpp create mode 100644 Shell.h create mode 100644 Shell.rgs create mode 100644 ShellExecObj.rgs create mode 100644 StdAfx.cpp create mode 100644 StdAfx.h create mode 100644 TestScript/bitmap.vbs create mode 100644 TestScript/blk1.bmp create mode 100644 TestScript/class1.vbs create mode 100644 TestScript/class2.vbs create mode 100644 TestScript/clip1.vbs create mode 100644 TestScript/dlg1.vbs create mode 100644 TestScript/dlg2.vbs create mode 100644 TestScript/dlg3.vbs create mode 100644 TestScript/dllver.vbs create mode 100644 TestScript/draw1.vbs create mode 100644 TestScript/event1.vbs create mode 100644 TestScript/form1.vbs create mode 100644 TestScript/form2.vbs create mode 100644 TestScript/form3.vbs create mode 100644 TestScript/frame1.vbs create mode 100644 TestScript/key.vbs create mode 100644 TestScript/map.vbs create mode 100644 TestScript/pro1.vbs create mode 100644 TestScript/pro2.vbs create mode 100644 TestScript/sample1.vbs create mode 100644 TestScript/sample2.vbs create mode 100644 TestScript/sample3.vbs create mode 100644 TestScript/sample3b.vbs create mode 100644 TestScript/sample4.vbs create mode 100644 TestScript/sample5.vbs create mode 100644 TestScript/sfolder.vbs create mode 100644 TestScript/simple1.vbs create mode 100644 TestScript/simple2.vbs create mode 100644 TestScript/tree1.vbs create mode 100644 TestScript/tree_list.vbs create mode 100644 TestScript/wait1.vbs create mode 100644 TreeItem.cpp create mode 100644 TreeItem.h create mode 100644 TreeItem.rgs create mode 100644 commdial.bmp create mode 100644 generic.cpp create mode 100644 generic.h create mode 100644 instance.bmp create mode 100644 popupwin.bmp create mode 100644 resource.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5973a72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +/Debug +/ipch +SeraphyScriptTools.sdf +dlldata.c +SeraphyScriptTools.tlb +SeraphyScriptTools_i.c +SeraphyScriptTools_p.c +SeraphyScriptTools.vcxproj.user +SeraphyScriptTools.v12.suo +SeraphyScriptTools.opensdf +help/seraphyscripttools.chm diff --git a/CommDialog.cpp b/CommDialog.cpp new file mode 100644 index 0000000..fc4a1c4 --- /dev/null +++ b/CommDialog.cpp @@ -0,0 +1,532 @@ +// CCommDialog.cpp : CCCommDialog ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ + +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "CommDialog.h" +#include "generic.h" +#include "ObjectVector.h" + +///////////////////////////////////////////////////////////////////////////// +// CCommDialog + +void CCommDialog::CommFileDialog(VARIANT* pvarReturn,VARIANT varPathName, VARIANT varFilter,BOOL bMode,DWORD flag) +{ + ::VariantInit(pvarReturn); + + // ƒtƒ@ƒCƒ‹‚ðŠJ‚­E•Û‘¶ƒ_ƒCƒAƒƒO‹¤’ʃ‹[ƒ`ƒ“ + CComVariant path; + CComVariant filter; + const int PATHBUFMAX = 8192; + CHAR szPathName[PATHBUFMAX] = {0}; + CHAR szFilter [MAX_PATH+2] = {0}; + CHAR szDefExtention[MAX_PATH] = {0}; + CHAR szInitialDir[MAX_PATH] = {0}; + + if(path.ChangeType(VT_BSTR,&varPathName) == S_OK){ + // ƒtƒ@ƒCƒ‹–¼‚ÌŽæ‚èo‚µ + WideCharToMultiByte(GetACP(),0,path.bstrVal,-1,szPathName,PATHBUFMAX,NULL,NULL); + } + if(filter.ChangeType(VT_BSTR,&varFilter) == S_OK){ + // ƒtƒBƒ‹ƒ^Žw’肪‚ ‚é + WideCharToMultiByte(GetACP(),0,filter.bstrVal,-1,szFilter,MAX_PATH,NULL,NULL); + LPSTR p = szFilter; + LPSTR pExt = NULL; + while(*p){ + if(*p == '|'){ + *p++ = 0; + if(!pExt){ + // Å‰‚Ì‹æØ‚èƒ}[ƒN‚ªÅ‰‚ÌŠg’£Žqƒ}[ƒN‚Å‚ ‚낤B + pExt = p; + } + } + p = CharNextA(p); + } + // •¡”Šg’£ŽqƒtƒBƒ‹ƒ^‚Å‚ ‚ê‚΍ŏ‰‚ÌŠg’£Žq‚Ì‚ÝŽæ‚èo‚· + lstrcpyA(szDefExtention,pExt); + pExt = szDefExtention; + while(*pExt){ + if(*pExt == ';'){ + break; + } + pExt = CharNextA(pExt); + } + } + + OPENFILENAME ofn = {0}; + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.lpstrFilter = szFilter; + ofn.lpstrFile = szPathName; + ofn.nMaxFile = PATHBUFMAX; + ofn.lpstrDefExt = szDefExtention; + ofn.Flags = flag; + ofn.hwndOwner = GetMainWindow(); + + if(m_bstr_InitialDir.length() > 0){ + // ‰ŠúƒfƒBƒŒƒNƒgƒŠ + WideCharToMultiByte(GetACP(),0,m_bstr_InitialDir,-1,szInitialDir,MAX_PATH,NULL,NULL); + ofn.lpstrInitialDir = szInitialDir; + } + + if(m_bNoDereferenceLinks){ + // ƒVƒ‡[ƒgƒJƒbƒg‚ðA‚»‚Ì‚Ü‚ÜŽæ‚éB + ofn.Flags |= OFN_NODEREFERENCELINKS; + } + + TCHAR szCaption[MAX_PATH] = {0}; + BOOL result = false; + if(bMode){ + // ŠJ‚­ƒ_ƒCƒAƒƒO + ofn.Flags |= (m_bReadonly)?OFN_READONLY:0; + if(m_bstr_OpenFileCaption.length() > 0){ + WideCharToMultiByte(GetACP(),0,m_bstr_OpenFileCaption,-1,szCaption,MAX_PATH,NULL,NULL); + ofn.lpstrTitle = szCaption; + } + result = GetOpenFileName(&ofn); + if(result){ + m_bReadonly = (ofn.Flags & OFN_READONLY)?true:false; + } + } + else{ + // •Û‘¶ƒ_ƒCƒAƒƒO + if(m_bstr_SaveFileCaption.length() > 0){ + WideCharToMultiByte(GetACP(),0,m_bstr_SaveFileCaption,-1,szCaption,MAX_PATH,NULL,NULL); + ofn.lpstrTitle = szCaption; + } + result = GetSaveFileName(&ofn); + } + + if(result){ + if(!(ofn.Flags & OFN_ALLOWMULTISELECT)){ + // ’Pˆêƒtƒ@ƒCƒ‹‘I‘ð + CComVariant retpath; + retpath = (LPCSTR)ofn.lpstrFile; + retpath.Detach(pvarReturn); + } + else{ + // •¡”ƒtƒ@ƒCƒ‹‘I‘ð + // •Ô‚³‚ꂽƒtƒ@ƒCƒ‹”‚ðŒv”‚·‚é + int cnt = 0; + LPCSTR p = szPathName; + while(*p){ + cnt++; + while(*p++); + } + // ƒVƒ“ƒOƒ‹‚Ü‚½‚̓}ƒ‹ƒ` + SAFEARRAY *pArray = NULL; + if(cnt == 1){ + // 1‚‚¾‚¯‚È‚çƒtƒ‹ƒpƒX‚ª•Ô‚Á‚Ä‚¢‚é + CComVariant tmp((LPCSTR)szPathName); + pArray = SafeArrayCreateVector(VT_VARIANT,0,1); + long indx = 0; + SafeArrayPutElement(pArray,&indx,&tmp); + } + else if(cnt > 1){ + // SAFEARRAY‚̍쐬 + pArray = SafeArrayCreateVector(VT_VARIANT,0,cnt-1); + // •¡”‚È‚çÅ‰‚ªƒfƒBƒŒƒNƒgƒŠ–¼A2”Ԗڈȍ~‚ªƒtƒ@ƒCƒ‹–¼ + p = szPathName; + _bstr_t dirname = (LPCSTR)p; + // ––”ö‚ªƒtƒHƒ‹ƒ_ƒvƒŒƒCƒX‚ªI‚í‚Á‚Ä‚È‚¯‚ê‚ΒljÁ‚·‚é + LPCWSTR wp = dirname; + while(*wp)wp++; + if(wp - 1 > (LPCWSTR)dirname && *(wp - 1) != '\\'){ + dirname += L"\\"; + } + while(*p++); + // 2”Ԗڈȍ~‚̎擾 + long indx = 0; + while(*p){ + _bstr_t name = (LPCSTR)p; + _bstr_t path = dirname + name; + CComVariant tmp((BSTR)path); + SafeArrayPutElement(pArray,&indx,&tmp); + while(*p++); + indx++; + } + } + // SAFEARRAY‚ªì¬‚³‚ê‚Ä‚¢‚ê‚Î + if(pArray){ + pvarReturn->vt = VT_ARRAY | VT_VARIANT; + pvarReturn->parray = pArray; + } + }// Single or Multi + }// if result is ok +} + +///////////////////////////////// +// ƒCƒ“ƒ^[ƒtƒFƒCƒX•” + +STDMETHODIMP CCommDialog::OpenFileDialog(VARIANT varPathName,VARIANT varFilter,VARIANT* pvarReturn) +{ + DWORD flags = (m_bEnableCreatePrompt ? OFN_CREATEPROMPT : OFN_FILEMUSTEXIST) + + (m_bEnableReadonly ? 0 : OFN_HIDEREADONLY ); + CommFileDialog(pvarReturn,varPathName,varFilter,true,flags|OFN_ENABLESIZING); + return S_OK; +} + +STDMETHODIMP CCommDialog::SaveFileDialog(VARIANT varPathName, VARIANT varFilter, VARIANT* pvarReturn) +{ + CommFileDialog(pvarReturn,varPathName,varFilter,false,OFN_ENABLESIZING|OFN_OVERWRITEPROMPT); + return S_OK; +} + + +STDMETHODIMP CCommDialog::MultiOpenFileDialog(VARIANT varMulti,VARIANT varFilter,VARIANT* pvarReturn) +{ + DWORD flags = (m_bEnableCreatePrompt ? OFN_CREATEPROMPT : OFN_FILEMUSTEXIST) + + (m_bEnableReadonly ? 0 : OFN_HIDEREADONLY ); + CommFileDialog(pvarReturn,varMulti,varFilter,true,flags|OFN_ALLOWMULTISELECT|OFN_EXPLORER|OFN_ENABLESIZING); + return S_OK; +} + +STDMETHODIMP CCommDialog::get_OpenFileCaption(BSTR *pVal) +{ + *pVal = m_bstr_OpenFileCaption.copy(); + return S_OK; +} + +STDMETHODIMP CCommDialog::put_OpenFileCaption(BSTR newVal) +{ + m_bstr_OpenFileCaption = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_SaveFileCaption(BSTR *pVal) +{ + *pVal = m_bstr_SaveFileCaption.copy(); + return S_OK; +} + +STDMETHODIMP CCommDialog::put_SaveFileCaption(BSTR newVal) +{ + m_bstr_SaveFileCaption = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_EnableCreatePrompt(BOOL *pVal) +{ + *pVal = m_bEnableCreatePrompt?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CCommDialog::put_EnableCreatePrompt(BOOL newVal) +{ + m_bEnableCreatePrompt = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_EnableReadOnly(BOOL *pVal) +{ + *pVal = m_bEnableReadonly?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CCommDialog::put_EnableReadOnly(BOOL newVal) +{ + m_bEnableReadonly = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_ReadOnly(BOOL *pVal) +{ + *pVal = m_bReadonly?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CCommDialog::put_ReadOnly(BOOL newVal) +{ + m_bReadonly = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_NoDereferenceLinks(BOOL *pVal) +{ + *pVal = m_bNoDereferenceLinks; + return S_OK; +} + +STDMETHODIMP CCommDialog::put_NoDereferenceLinks(BOOL newVal) +{ + m_bNoDereferenceLinks = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_InitialDir(BSTR *pVal) +{ + *pVal = m_bstr_InitialDir.copy(); + return S_OK; +} + +STDMETHODIMP CCommDialog::put_InitialDir(BSTR newVal) +{ + m_bstr_InitialDir = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::get_HWND(long *pVal) +{ + *pVal = (long)m_hStaticMainWindow; + return S_OK; +} + +STDMETHODIMP CCommDialog::put_HWND(long newVal) +{ + m_hStaticMainWindow = (HWND)newVal; + if(m_pMainWindow){ + m_pMainWindow->Release(); + m_pMainWindow = NULL; + } + return S_OK; +} + +STDMETHODIMP CCommDialog::get_BrowseForFolderCaption(BSTR *pVal) +{ + *pVal = m_bstr_BrowseForFolderCaption.copy(); + return S_OK; +} + +STDMETHODIMP CCommDialog::put_BrowseForFolderCaption(BSTR newVal) +{ + m_bstr_BrowseForFolderCaption = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::BrowseForFolder(VARIANT varCaption,VARIANT varDir, VARIANT varMode,VARIANT* pvarReturn) +{ + ::VariantInit(pvarReturn); + // ƒLƒƒƒvƒVƒ‡ƒ“‚̐ݒè + CComVariant caption; + if(varCaption.vt != VT_ERROR && varCaption.vt != VT_NULL && varCaption.vt != VT_EMPTY && + caption.ChangeType(VT_BSTR,&varCaption) == S_OK){ + put_BrowseForFolderCaption(caption.bstrVal); + } + + TCHAR szDirName[MAX_PATH]; + TCHAR szTitle[MAX_PATH]; + BROWSEINFO binfo = {0}; + binfo.hwndOwner = GetMainWindow(); + if(m_bstr_BrowseForFolderCaption.length() > 0){ + WideCharToMultiByte(GetACP(),0,m_bstr_BrowseForFolderCaption,-1,szTitle,MAX_PATH,NULL,NULL); + binfo.lpszTitle = szTitle; + } + CComVariant path; + if(path.ChangeType(VT_BSTR,&varDir) == S_OK){ + // ƒtƒ@ƒCƒ‹–¼‚ÌŽæ‚èo‚µ + WideCharToMultiByte(GetACP(),0,path.bstrVal,-1,szDirName,MAX_PATH,NULL,NULL); + } + binfo.pszDisplayName = szDirName; + int mode = 0; + CComVariant varTmp; + if(varTmp.ChangeType(VT_I4,&varMode) == S_OK){ + mode = varTmp.lVal; + } + binfo.ulFlags = 0;//BIF_NEWDIALOGSTYLE; // BIF_USENEWUI + switch(mode & 0x0f) + { + case 0: + default: + binfo.ulFlags |= BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE; + binfo.lpfn = BrowseCallbackProc; + binfo.lParam = (LPARAM)szDirName; + break; + case 1: + binfo.ulFlags |= BIF_BROWSEFORCOMPUTER; + break; + case 2: + binfo.ulFlags |= BIF_BROWSEFORPRINTER; + break; + case 3: + binfo.ulFlags |= BIF_RETURNFSANCESTORS; + break; + } + if(mode & 0x10){ + binfo.ulFlags |= BIF_BROWSEINCLUDEFILES; + } + if(mode & 0x20){ + binfo.ulFlags |= BIF_BROWSEINCLUDEURLS; + } + if(mode & 0x40){ + binfo.ulFlags |= BIF_DONTGOBELOWDOMAIN; + } + + LPITEMIDLIST idlst = NULL; + if((idlst = SHBrowseForFolder(&binfo)) != NULL){ + IMalloc *pMalloc; + SHGetMalloc(&pMalloc); + SHGetPathFromIDList(idlst,szDirName); + pMalloc->Free(idlst); + pMalloc->Release(); + CComVariant tmp((LPCSTR)szDirName); + tmp.Detach(pvarReturn); + } + return S_OK; +} + + +int CALLBACK CCommDialog::BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) +{ + switch(uMsg) + { + case BFFM_INITIALIZED: + SendMessage(hwnd,BFFM_SETSELECTION,true,lpData); + break; + case BFFM_SELCHANGED: + { + TCHAR szBuf[MAX_PATH]; + BOOL bResult = SHGetPathFromIDList((LPITEMIDLIST)lParam,szBuf); + SendMessage(hwnd,BFFM_ENABLEOK,0,bResult); + } + break; + case BFFM_VALIDATEFAILED: + break; + } + return 0; +} + +HWND CCommDialog::GetMainWindow() +{ + HWND hWnd = m_hStaticMainWindow; + if(m_pMainWindow){ + m_pMainWindow->get_HWND((long*)&hWnd); + } + return hWnd; +} + +STDMETHODIMP CCommDialog::SetMainWindow(VARIANT varUnk) +{ + // Šù‘¶‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚̉ð•ú + if(m_pMainWindow){ + m_pMainWindow->Release(); + m_pMainWindow = NULL; + } + // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̎擾 + CComVariant tmp; + if(tmp.ChangeType(VT_UNKNOWN,&varUnk) == S_OK){ + if(tmp.punkVal->QueryInterface(IID_IOverlappedWindow,(void**)&m_pMainWindow) == S_OK){ + return S_OK; + } + } + return DISP_E_UNKNOWNINTERFACE; +} + +STDMETHODIMP CCommDialog::MessageBox(VARIANT mes, VARIANT typ, VARIANT icon, VARIANT* pRet) +{ + CComVariant ret; + LPSTR pBuf = NULL; + CComVariant varMes; + if(varMes.ChangeType(VT_BSTR,&mes) == S_OK){ + int sz = WideCharToMultiByte(GetACP(),0,varMes.bstrVal,-1,NULL,0,NULL,NULL); + pBuf = new CHAR[sz+1]; + WideCharToMultiByte(GetACP(),0,varMes.bstrVal,-1,pBuf,sz,NULL,NULL); + pBuf[sz] = 0; + } + UINT mode = MB_OK; + CComVariant varType,varIcon; + if(varType.ChangeType(VT_I2,&typ) == S_OK){ + if(varType.iVal / 10){ + mode = MB_DEFBUTTON2; + } + switch(varType.iVal % 10) + { + case 0: + default: + mode |= MB_OK; + break; + case 1: + mode |= MB_OKCANCEL; + break; + case 2: + mode |= MB_YESNO; + break; + case 3: + mode |= MB_YESNOCANCEL; + break; + case 4: + mode |= MB_RETRYCANCEL; + break; + case 5: + mode |= MB_ABORTRETRYIGNORE; + break; + } + } + if(varIcon.ChangeType(VT_I2,&icon) == S_OK){ + switch(varIcon.iVal) + { + case 0: + default: + break; + case 1: + mode |= MB_ICONERROR; + break; + case 2: + mode |= MB_ICONWARNING; + break; + case 3: + mode |= MB_ICONINFORMATION; + break; + case 4: + mode |= MB_ICONQUESTION; + break; + } + } + int md = ::MessageBox(GetMainWindow(),pBuf,GetMainCaption(),mode); + switch(md) + { + case IDOK: + case IDYES: + case IDRETRY: + ret = (short)1; + break; + case IDCANCEL: + case IDABORT: + ret = (short)-1; + break; + case IDNO: + case IDIGNORE: + ret = (short)0; + break; + } + *pRet = ret; + return S_OK; +} + +LPCSTR CCommDialog::GetMainCaption() +{ + static CHAR szCaption[MAX_PATH]; + if(!m_bstr_MessageCaption.length() && m_pMainWindow){ + // ƒLƒƒƒvƒVƒ‡ƒ“‚ªŽw’肳‚ê‚Ä‚¢‚È‚¢‚È‚çŽæ“¾‚·‚é + BSTR bstrCaption; + m_pMainWindow->get_Caption(&bstrCaption); + int cnt = WideCharToMultiByte(GetACP(),0,bstrCaption,-1,szCaption,MAX_PATH,NULL,NULL); + szCaption[cnt] = 0; + SysFreeString(bstrCaption); + } + else{ + int cnt = WideCharToMultiByte(GetACP(),0,m_bstr_MessageCaption,-1,szCaption,MAX_PATH,NULL,NULL); + szCaption[cnt] = 0; + } + return szCaption; +} + +STDMETHODIMP CCommDialog::get_MessageCaption(BSTR *pVal) +{ + *pVal = m_bstr_MessageCaption.copy(); + return S_OK; +} + +STDMETHODIMP CCommDialog::put_MessageCaption(BSTR newVal) +{ + m_bstr_MessageCaption = newVal; + return S_OK; +} + +STDMETHODIMP CCommDialog::ColorDialog(VARIANT *pcolorVal) +{ + ::VariantInit(pcolorVal); + m_color.hwndOwner = GetMainWindow(); + if(ChooseColor(&m_color)){ + pcolorVal->vt = VT_I4; + pcolorVal->lVal = (long)m_color.rgbResult; + } + return S_OK; +} diff --git a/CommDialog.h b/CommDialog.h new file mode 100644 index 0000000..88892ec --- /dev/null +++ b/CommDialog.h @@ -0,0 +1,215 @@ + +// CommDialog.h : Declaration of the CCommDialog + +#ifndef __COMMDIALOG_H_ +#define __COMMDIALOG_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include +#include "SeraphyScriptToolsCP.h" + +///////////////////////////////////////////////////////////////////////////// +// CCommDialog +class ATL_NO_VTABLE CCommDialog : + public CComObjectRootEx, + public CStockPropImpl, + public CComControl, + public IPersistStreamInitImpl, + public IOleControlImpl, + public IOleObjectImpl, + public IOleInPlaceActiveObjectImpl, + public IViewObjectExImpl, + public IOleInPlaceObjectWindowlessImpl, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IPersistStorageImpl, + public ISpecifyPropertyPagesImpl, + public IQuickActivateImpl, + public IDataObjectImpl, + public IProvideClassInfo2Impl<&CLSID_CommDialog, &DIID__ICommDialogEvents, &LIBID_SERAPHYSCRIPTTOOLSLib>, + public IPropertyNotifySinkCP, + public CComCoClass +{ +public: + CCommDialog() + { + m_pUnkMarshaler = NULL; + // ƒJƒ‰[\‘¢‘Ì + int i; + for(i=0;i<16;i++){ + m_colors[i] = COLORREF(0xC0C0C0); + } + ZeroMemory(&m_color,sizeof(CHOOSECOLOR)); + m_color.lStructSize = sizeof(CHOOSECOLOR); + m_color.lpCustColors = m_colors; + m_color.Flags = CC_FULLOPEN | CC_SOLIDCOLOR; + // + m_bEnableCreatePrompt = false; + m_bEnableReadonly = false; + m_bReadonly = false; + m_bNoDereferenceLinks = false; + m_hStaticMainWindow = NULL; // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚æ‚è—Dæ‚µ‚ÄŽg—p‚³‚ê‚é + // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̏‰Šú‰» + m_pMainWindow = NULL; + } + +DECLARE_GET_CONTROLLING_UNKNOWN() +DECLARE_REGISTRY_RESOURCEID(IDR_COMMDIALOG) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CCommDialog) + COM_INTERFACE_ENTRY(ICommDialog) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(IViewObjectEx) + COM_INTERFACE_ENTRY(IViewObject2) + COM_INTERFACE_ENTRY(IViewObject) + COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless) + COM_INTERFACE_ENTRY(IOleInPlaceObject) + COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless) + COM_INTERFACE_ENTRY(IOleInPlaceActiveObject) + COM_INTERFACE_ENTRY(IOleControl) + COM_INTERFACE_ENTRY(IOleObject) + COM_INTERFACE_ENTRY(IPersistStreamInit) + COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) + COM_INTERFACE_ENTRY(ISpecifyPropertyPages) + COM_INTERFACE_ENTRY(IQuickActivate) + COM_INTERFACE_ENTRY(IPersistStorage) + COM_INTERFACE_ENTRY(IDataObject) + COM_INTERFACE_ENTRY(IProvideClassInfo) + COM_INTERFACE_ENTRY(IProvideClassInfo2) + COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p) + COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer) +END_COM_MAP() + +BEGIN_PROP_MAP(CCommDialog) + PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4) + PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4) + PROP_ENTRY("Caption", DISPID_CAPTION, CLSID_NULL) + // Example entries + // PROP_ENTRY("Property Description", dispid, clsid) + // PROP_PAGE(CLSID_StockColorPage) +END_PROP_MAP() + +BEGIN_CONNECTION_POINT_MAP(CCommDialog) + CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink) +END_CONNECTION_POINT_MAP() + +BEGIN_MSG_MAP(CCommDialog) + CHAIN_MSG_MAP(CComControl) + DEFAULT_REFLECTION_HANDLER() +END_MSG_MAP() +// Handler prototypes: +// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); +// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); +// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); + + + + HRESULT FinalConstruct() + { + return CoCreateFreeThreadedMarshaler( + GetControllingUnknown(), &m_pUnkMarshaler.p); + } + + void FinalRelease() + { + ATLTRACE("CommonDialog::FinalRelease\r\n"); + // ƒƒCƒ“ƒEƒBƒ“ƒhƒEƒCƒ“ƒ^[ƒtƒFƒCƒX‚̉ð•ú + if(m_pMainWindow){ + m_pMainWindow->Release(); + m_pMainWindow = NULL; + } + m_pUnkMarshaler.Release(); + } + + CComPtr m_pUnkMarshaler; + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid) + { + static const IID* arr[] = + { + &IID_ICommDialog, + }; + for (int i=0; i +using namespace std; + +///////////////////////////////////////////////////////////////////////////// +// CControl + +STDMETHODIMP CControl::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_IControl + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CControl::get_Text(BSTR *pVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + DWORD siz = ::GetWindowTextLength(m_hWnd); + LPSTR pMes = new CHAR[siz+1]; + GetWindowText(m_hWnd,pMes,siz+1); + _bstr_t tmp = (LPCSTR)pMes; + *pVal = tmp.copy(); + delete[]pMes; + return S_OK; +} + +STDMETHODIMP CControl::put_Text(BSTR newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + _bstr_t tmp(newVal,true); + ::SetWindowText(m_hWnd,(LPCSTR)tmp); + return S_OK; +} + +STDMETHODIMP CControl::get_ID(short *pVal) +{ + if(m_hWnd){ + m_nID = (int)GetWindowLong(m_hWnd,GWL_ID); + } + *pVal = m_nID; + return S_OK; +} + +STDMETHODIMP CControl::put_ID(short newVal) +{ + m_nID = newVal; + if(m_hWnd){ + SetWindowLong(m_hWnd,GWL_ID,newVal); + if((m_nID == IDOK) && !lstrcmp(m_classname,"BUTTON")){ + // IDOK‚È‚çƒ|ƒbƒVƒ…ƒ{ƒ^ƒ“Œ^‚ðƒfƒBƒtƒHƒ‹ƒgƒ{ƒ^ƒ“‚ɕω»‚³‚¹‚é + DWORD m_style = ::GetWindowLong(m_hWnd,GWL_STYLE); + m_style |= BS_DEFPUSHBUTTON; + ::SetWindowLong(m_hWnd,GWL_STYLE,m_style); + } + } + return S_OK; +} + +STDMETHODIMP CControl::get_Visibility(BOOL *pVal) +{ + if(!m_hParent || !m_hWnd){ + *pVal = 0; + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + *pVal = (pls.showCmd != SW_HIDE)?true:false; + return S_OK; +} + +STDMETHODIMP CControl::put_Visibility(BOOL newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + ::ShowWindow(m_hWnd,newVal?SW_SHOWNORMAL:SW_HIDE); + return S_OK; +} + +STDMETHODIMP CControl::get_Enable(BOOL *pVal) +{ + if(!m_hParent || !m_hWnd){ + *pVal = 0; + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + *pVal = ::IsWindowEnabled(m_hWnd); + return S_OK; +} + +STDMETHODIMP CControl::put_Enable(BOOL newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + ::EnableWindow(m_hWnd,newVal); + return S_OK; +} + +STDMETHODIMP CControl::get_CheckState(short *pVal) +{ + if(m_hWnd){ + m_bChecked = (short)::SendMessage(m_hWnd,BM_GETCHECK,0,0); + } + *pVal = m_bChecked; + return S_OK; +} + +STDMETHODIMP CControl::put_CheckState(short newVal) +{ + m_bChecked = newVal; + if(m_hWnd && newVal >= 0 && newVal <= 2){ + // 0:Unchecked 1:Checked 2:interminate + ::SendMessage(m_hWnd,BM_SETCHECK,newVal,0); + } + return S_OK; +} + +BOOL CControl::Create(HWND hParent) +{ + // << ƒfƒBƒtƒHƒ‹ƒg‚̃vƒbƒVƒ…ƒ{ƒ^ƒ“‚ɕω»‚³‚¹‚éƒNƒ–‚p >> + if((m_nID == IDOK) && !lstrcmp(m_classname,"BUTTON")){ + // IDOK‚È‚ç•ÏX‚·‚é + m_style |= BS_DEFPUSHBUTTON; + } + + //@ƒRƒ“ƒgƒ[ƒ‹‚̐¶¬ + ATLASSERT(m_hParent == NULL); + m_hParent = hParent; + m_hWnd = ::CreateWindowEx(m_exstyle,m_classname,m_caption + ,m_style | WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS + ,m_x,m_y,m_w,m_h + ,hParent + ,NULL + ,_Module.m_hInst + ,NULL); + ::SetWindowLong(m_hWnd, GWL_ID, m_nID); + ::SetWindowLong(m_hWnd, GWL_USERDATA,(LPARAM)this); + ::SetWindowText(m_hWnd,m_caption); + + // e‚ªƒfƒBƒZ[ƒuƒ‹‚È‚çŽq‚àƒfƒBƒZ[ƒuƒ‹ó‘Ԃō쐬‚·‚é + if(!::IsWindowEnabled(m_hParent)){ + ::EnableWindow(m_hWnd,false); + } + + ////////////////////////// + // Ž–‘Oó‘Ԃ̐ݒè + if(!lstrcmp(m_classname,"BUTTON")){ + // ƒ{ƒ^ƒ“‚È‚çƒ`ƒFƒbƒNó‘Ԃ̃Zƒbƒg + if(m_bChecked){ + ::SendMessage(m_hWnd,BM_SETCHECK,1,0); + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚È‚çƒJƒ‰ƒ€‚̐ݒè‚ðs‚¤ + TCHAR szColumn[MAX_PATH]; + LPCSTR p = m_caption; + m_nColumnCount = 0; + // ƒEƒBƒ“ƒhƒEƒLƒƒƒvƒVƒ‡ƒ“‚©‚ç—ñŒ©o‚µ‚ðì¬‚·‚é + while(*p){ + LPCSTR d = p; + while(*p && *p != ',' && *p != ':'){ + p = CharNext(p); + } + int sz = p - d; + if(sz >= MAX_PATH) sz = MAX_PATH - 1; + CopyMemory(szColumn,d,p - d); + szColumn[p-d] = 0; + LVCOLUMN col = {0}; + col.mask = LVCF_TEXT | LVCF_WIDTH; + col.pszText = szColumn; + col.cx = ListView_GetStringWidth(m_hWnd,szColumn) + 16; + ListView_InsertColumn(m_hWnd,m_nColumnCount,&col); + if(*p == ',' || *p == ':') p++; + m_nColumnCount++; + } + if(m_afterstyle){ + ListView_SetExtendedListViewStyle(m_hWnd,m_afterstyle); + } + } + else if(!lstrcmp(m_classname,WC_TREEVIEW)){ + TreeView_SetImageList(m_hWnd,NULL,TVSIL_NORMAL); + } + return true; +} + +void CControl::Destroy() +{ + DeleteAllItems(); + if(m_hWnd){ + // ƒEƒBƒ“ƒhƒE‚ð”jŠü‚·‚é + // ƒEƒBƒ“ƒhƒE‚Ì”jŠü‚ƃCƒ“ƒ^[ƒtƒFƒCƒX‚Ì”jŠü‚͈ê’v‚µ‚È‚¢B + ::DestroyWindow(m_hWnd); + m_hWnd = NULL; + } +} + +STDMETHODIMP CControl::get_Width(short *pVal) +{ + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + m_w = (short)(pls.rcNormalPosition.right - pls.rcNormalPosition.left); + } + *pVal = m_w; + return S_OK; +} + +STDMETHODIMP CControl::put_Width(short newVal) +{ + m_w = newVal; + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + ::SetWindowPos(m_hWnd,NULL,0,0,m_w,pls.rcNormalPosition.right - pls.rcNormalPosition.left,SWP_NOZORDER|SWP_NOMOVE); + } + return S_OK; +} + +STDMETHODIMP CControl::get_Height(short *pVal) +{ + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + m_h = (short)(pls.rcNormalPosition.bottom - pls.rcNormalPosition.top); + } + *pVal = m_h; + return S_OK; +} + +STDMETHODIMP CControl::put_Height(short newVal) +{ + m_h = newVal; + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + ::SetWindowPos(m_hWnd,NULL,0,0,m_h,pls.rcNormalPosition.right - pls.rcNormalPosition.left,SWP_NOZORDER|SWP_NOMOVE); + } + return S_OK; +} + +STDMETHODIMP CControl::get_PosX(short *pVal) +{ + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + m_x = (short)pls.rcNormalPosition.left; + } + *pVal = m_x; + return S_OK; +} + +STDMETHODIMP CControl::put_PosX(short newVal) +{ + m_x = newVal; + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + ::SetWindowPos(m_hWnd,NULL,m_x,pls.rcNormalPosition.top,0,0,SWP_NOZORDER|SWP_NOSIZE); + } + return S_OK; +} + +STDMETHODIMP CControl::get_PosY(short *pVal) +{ + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + m_y = (short)pls.rcNormalPosition.top; + } + *pVal = m_y; + return S_OK; +} + +STDMETHODIMP CControl::put_PosY(short newVal) +{ + m_y = newVal; + if(m_hWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hWnd,&pls); + ::SetWindowPos(m_hWnd,NULL,pls.rcNormalPosition.left,m_y,0,0,SWP_NOZORDER|SWP_NOSIZE); + } + return S_OK; +} + +STDMETHODIMP CControl::SetPlacement(VARIANT x, VARIANT y, VARIANT w, VARIANT h, VARIANT *pvarUnk) +{ + // ƒTƒCƒY•ÏX + CComVariant varX,varY,varW,varH; + if((x.vt != VT_EMPTY && x.vt != VT_NULL && x.vt != VT_ERROR) && varX.ChangeType(VT_I2,&x) == S_OK){ + m_x = varX.iVal; + } + if((y.vt != VT_EMPTY && y.vt != VT_NULL && y.vt != VT_ERROR) && varY.ChangeType(VT_I2,&y) == S_OK){ + m_y = varY.iVal; + } + if((h.vt != VT_EMPTY && h.vt != VT_NULL && h.vt != VT_ERROR) && varH.ChangeType(VT_I2,&h) == S_OK){ + m_h = varH.iVal; + } + if((w.vt != VT_EMPTY && w.vt != VT_NULL && w.vt != VT_ERROR) && varW.ChangeType(VT_I2,&w) == S_OK){ + m_w = varW.iVal; + } + // ƒEƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚Ä‚¢‚ê‚΂½‚¾‚¿‚É”½‰f + if(m_hWnd){ + ::SetWindowPos(m_hWnd,NULL,m_x,m_y,m_w,m_h,SWP_NOZORDER); + } + GetThisInterface(pvarUnk); + return S_OK; +} + +STDMETHODIMP CControl::SetCheck(VARIANT *pvarUnk) +{ + // ‚½‚¾‚¿‚Ƀ`ƒFƒbƒN‚·‚é + put_CheckState(true); + GetThisInterface(pvarUnk); + return S_OK; +} + +STDMETHODIMP CControl::SetID(VARIANT varID, VARIANT *pvarUnk) +{ + // ’¼‚¿‚ÉID‚ðŠ„‚è“–‚Ä‚é + CComVariant tmp; + if(varID.vt != VT_EMPTY && varID.vt != VT_EMPTY && varID.vt != VT_EMPTY + && (tmp.ChangeType(VT_I2,&varID) == S_OK)){ + if(tmp.iVal > 0){ + put_ID(tmp.iVal); + } + } + GetThisInterface(pvarUnk); + return S_OK; +} + +void CControl::GetThisInterface(VARIANT *pvarUnk) +{ + // ‚±‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚ð•Ô‚· + ::VariantInit(pvarUnk); + IUnknown* pUnk = NULL; + if(QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + } +} + +int CControl::GetID() +{ + return m_nID; +} + +STDMETHODIMP CControl::get_Style(long *pVal) +{ + if(m_hWnd){ + m_style = ::GetWindowLong(m_hWnd,GWL_STYLE); + } + *pVal = m_style; + return S_OK; +} + +STDMETHODIMP CControl::put_Style(long newVal) +{ + m_style = newVal; + if(m_hWnd){ + ::SetWindowLong(m_hWnd,GWL_STYLE,m_style); + } + return S_OK; +} + +STDMETHODIMP CControl::get_Exstyle(long *pVal) +{ + if(m_hWnd){ + m_exstyle = ::GetWindowLong(m_hWnd,GWL_EXSTYLE); + } + *pVal = m_exstyle; + return S_OK; +} + +STDMETHODIMP CControl::put_Exstyle(long newVal) +{ + m_exstyle = newVal; + if(m_hWnd){ + ::SetWindowLong(m_hWnd,GWL_EXSTYLE,m_exstyle); + } + return S_OK; +} + +STDMETHODIMP CControl::get_ClassName(BSTR *pVal) +{ + WCHAR wmes[MAX_PATH]; + MultiByteToWideChar(GetACP(),0,m_classname,-1,wmes,MAX_PATH); + *pVal = SysAllocString(wmes); + return S_OK; +} + +STDMETHODIMP CControl::Refresh() +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + ::SetWindowPos(m_hWnd,NULL,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_DRAWFRAME|SWP_FRAMECHANGED|SWP_NOCOPYBITS); + return S_OK; +} + +STDMETHODIMP CControl::get_HWND(long *pVal) +{ + *pVal = (long)m_hWnd; + return S_OK; +} + +LPSTR CControl::ConvertVariantToString(VARIANT text) +{ + CComVariant varText; + if(varText.ChangeType(VT_BSTR,&text) != S_OK){ + // •¶Žš‚É•ÏŠ·‚Å‚«‚È‚¯‚ê‚Ή½‚à‚µ‚È‚¢ + return NULL; + } + int sz = WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,NULL,0,NULL,NULL); + LPSTR pBuf = new CHAR[sz+1]; + WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,pBuf,sz,NULL,NULL); + pBuf[sz] = 0; + return pBuf; +} + +STDMETHODIMP CControl::AddString(VARIANT text,VARIANT* pRet) +{ + CComVariant ret; + ::VariantInit(pRet); + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + LPSTR pBuf; + if(!(pBuf = ConvertVariantToString(text))){ + return DISP_E_TYPEMISMATCH; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚É•¶Žš—ñ‚ð’ljÁ‚·‚é + ret = (short)SendMessage(m_hWnd,CB_ADDSTRING,0,(LPARAM)pBuf); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚É•¶Žš—ñ‚ð’ljÁ‚·‚é + int nIdx = SendMessage(m_hWnd,LB_ADDSTRING,0,(LPARAM)pBuf); + // ˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ðƒoƒCƒ“ƒh‚·‚é + CComObject* pMap = NULL; + IUnknown* pUnk = NULL; + if(pMap->CreateInstance(&pMap) == S_OK){ + pMap->QueryInterface(IID_IUnknown,(void**)&pUnk); + } + ::SendMessage(m_hWnd,LB_SETITEMDATA,nIdx,(LPARAM)pUnk); + ret = (short)nIdx; + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚É•¶Žš—ñ‚ð’ljÁ‚·‚é + int cnt = ListView_GetItemCount(m_hWnd); + LVITEM item = {0}; + item.mask = LVIF_TEXT; + item.pszText = pBuf; + item.iItem = cnt; + int nIdx = ListView_InsertItem(m_hWnd,&item); + // ƒTƒuƒJƒ‰ƒ€‚͋󕶂𖄂߂é + int i; + for(i = 1 ; i* pMap = NULL; + IUnknown* pUnk = NULL; + if(pMap->CreateInstance(&pMap) == S_OK){ + pMap->QueryInterface(IID_IUnknown,(void**)&pUnk); + } + LVITEM itm = {0}; + itm.iItem = nIdx; + itm.mask = LVIF_PARAM; + itm.lParam = (LPARAM)pUnk; + ListView_SetItem(m_hWnd,&itm); + ret = (short)nIdx; + } + else if(!lstrcmp(m_classname,WC_TREEVIEW)){ + // ƒcƒŠ[ƒrƒ…[‚̃‹[ƒg‚ɃAƒCƒeƒ€‚ðì¬‚·‚é + IUnknown* pUnk = NULL; + CTreeItem::CreateTreeItem(m_hWnd,TVI_ROOT,pBuf,&pUnk); + if(pUnk != NULL){ + ret = (IUnknown*)pUnk; + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + ret.Detach(pRet); + delete[]pBuf; + return retcode; +} + +STDMETHODIMP CControl::SetColumnText(VARIANT item, VARIANT col, VARIANT text) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + int nIdx = -1; + int nCol = -1; + CComVariant varIdx,varCol; + if(varIdx.ChangeType(VT_I2,&item) == S_OK){ + nIdx = varIdx.iVal; + } + if(varCol.ChangeType(VT_I2,&col) == S_OK){ + nCol = varCol.iVal; + } + if(nIdx < 0 || nCol < 0){ + // sEŒ…‚ªŽæ“¾‚Å‚«‚È‚©‚Á‚½ê‡ + return DISP_E_TYPEMISMATCH; + } + + LPSTR pBuf; + if(!(pBuf = ConvertVariantToString(text))){ + return DISP_E_TYPEMISMATCH; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,WC_LISTVIEW)){ + int mx = ListView_GetItemCount(m_hWnd); + if(nIdx >= mx || nCol >= m_nColumnCount){ + // s‚Ü‚½‚ÍŒ…‚ªƒI[ƒo[‚µ‚Ä‚¢‚éê‡ + ErrorInfo(IDS_ERR_RANDEOUT); + retcode = DISP_E_EXCEPTION; + } + else{ + // ƒŠƒXƒgƒrƒ…[‚É•¶Žš—ñ‚ð’ljÁ‚·‚é + ListView_SetItemText(m_hWnd,nIdx,nCol,pBuf); + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + delete[]pBuf; + return retcode; +} + +STDMETHODIMP CControl::GetColumnText(VARIANT idx, VARIANT col, VARIANT *pText) +{ + CComVariant ret; + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + int nIdx = -1; + int nCol = -1; + CComVariant varIdx,varCol; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = varIdx.iVal; + } + if(varCol.ChangeType(VT_I2,&col) == S_OK){ + nCol = varCol.iVal; + } + if(nIdx < 0 || nCol < 0){ + return DISP_E_TYPEMISMATCH; + } + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒCƒ“ƒfƒbƒNƒX‚𒲍¸ + int mx = ListView_GetItemCount(m_hWnd); + if(nIdx >= mx || nCol >= m_nColumnCount){ + ErrorInfo(IDS_ERR_RANDEOUT); + return DISP_E_EXCEPTION; + } + // ƒŠƒXƒgƒrƒ…[‚©‚當Žš—ñ‚ðŽæ“¾‚·‚é + LPSTR pBuf = new CHAR[MAX_PATH+1]; + ListView_GetItemText(m_hWnd,nIdx,nCol,pBuf,MAX_PATH); + ret = pBuf; + delete[]pBuf; + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + ret.Detach(pText); + return retcode; +} + +STDMETHODIMP CControl::get_ItemObject(VARIANT idx, VARIANT *pVal) +{ + ::VariantInit(pVal); + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + int nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = varIdx.iVal; + } + if(nIdx < 0 ){ + return DISP_E_TYPEMISMATCH; + } + + IUnknown* pUnk = NULL; + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚©‚ç˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é + int mx = ::SendMessage(m_hWnd,LB_GETCOUNT,0,0); + if(nIdx >= mx){ + ErrorInfo(IDS_ERR_RANDEOUT); + return DISP_E_EXCEPTION; + } + DWORD data = ::SendMessage(m_hWnd,LB_GETITEMDATA ,nIdx,0); + if(data != LB_ERR && data){ + pUnk = (IUnknown*)data; + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚©‚ç˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é + int mx = ListView_GetItemCount(m_hWnd); + if(nIdx >= mx){ + ErrorInfo(IDS_ERR_RANDEOUT); + return DISP_E_EXCEPTION; + } + LVITEM itm = {0}; + itm.mask = LVIF_PARAM; + itm.iItem = nIdx; + if(ListView_GetItem(m_hWnd,&itm)){ + if(itm.lParam){ + pUnk = (IUnknown*)itm.lParam; + } + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + if(pUnk){ + pUnk->AddRef(); + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + return retcode; +} + +STDMETHODIMP CControl::DeleteAllItems() +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + // ƒRƒ“ƒgƒ[ƒ‹‚Ì“à•”ƒAƒCƒeƒ€‚ÉŠÖ˜A•t‚¯‚ç‚ê‚Ä‚¢‚½˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ð‰ð•ú‚·‚é + if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒg‚̉ð•ú + int mx = ::SendMessage(m_hWnd,CB_GETCOUNT,0,0); + int i; + for(i=0;iRelease(); + } + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚̘A‘z”z—ñ‚̉ð•ú + int mx = ListView_GetItemCount(m_hWnd); + LVITEM itm = {0}; + int i; + for(i=0;iRelease(); + } + } + } + } + else if(!lstrcmp(m_classname,WC_TREEVIEW)){ + // ƒcƒŠ[ƒrƒ…[‚̘A‘z”z—ñ‚̉ð•ú + HTREEITEM hItem = TreeView_GetRoot(m_hWnd); + while(hItem){ + HTREEITEM hNextItem = TreeView_GetNextSibling(m_hWnd,hItem); + CTreeItem::DeleteTreeItemWithData(m_hWnd,hItem); + hItem = hNextItem; + } + } + // ˜A‘z”z—ñ‚ð‚à‚½‚È‚¢ƒRƒ“ƒgƒ[ƒ‹‚̏‰Šú‰» + else if(!lstrcmp(m_classname,"COMBOBOX")){ + // COMBOBOX + int cnt = ::SendMessage(m_hWnd,CB_GETCOUNT,0,0); + while(cnt > 0){ + ::SendMessage(m_hWnd,CB_DELETESTRING,0,0); + cnt--; + } + } + else if(!lstrcmp(m_classname,"EDIT")){ + // EditB + CComVariant dmy(L""); + put_Text(dmy.bstrVal); + } + return S_OK; +} +STDMETHODIMP CControl::DeleteString(VARIANT idx, VARIANT *pRet) +{ + CComVariant ret; + ::VariantInit(pRet); + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + int nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = varIdx.iVal; + } + if(nIdx < 0 ){ + return DISP_E_TYPEMISMATCH; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚©‚當Žš—ñ‚ðíœ‚·‚é + int mx = ::SendMessage(m_hWnd,CB_GETCOUNT,0,0); + if(nIdx >= mx){ + ErrorInfo(IDS_ERR_RANDEOUT); + return DISP_E_EXCEPTION; + } + int result = ::SendMessage(m_hWnd,CB_DELETESTRING,nIdx,0); + ret = (bool)(result != LB_ERR); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚©‚當Žš—ñ‚ðíœ‚·‚é + int mx = ::SendMessage(m_hWnd,LB_GETCOUNT,0,0); + if(nIdx >= mx){ + ErrorInfo(IDS_ERR_RANDEOUT); + return DISP_E_EXCEPTION; + } + // ˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ð”jŠü‚·‚é + DWORD data = ::SendMessage(m_hWnd,LB_GETITEMDATA ,nIdx,0); + if(data != LB_ERR && data){ + ((IUnknown*)data)->Release(); + } + // íœ + int result = ::SendMessage(m_hWnd,LB_DELETESTRING,nIdx,0); + ret = (bool)(result != LB_ERR); + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚©‚當Žš—ñ‚ðíœ‚·‚é + int mx = ListView_GetItemCount(m_hWnd); + if(nIdx >= mx){ + ErrorInfo(IDS_ERR_RANDEOUT); + return DISP_E_EXCEPTION; + } + // ˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ð”jŠü‚·‚é + LVITEM itm = {0}; + itm.mask = LVIF_PARAM; + itm.iItem = nIdx; + if(ListView_GetItem(m_hWnd,&itm)){ + if(itm.lParam){ + ((IUnknown*)itm.lParam)->Release(); + } + } + // íœ + ret = (bool)(ListView_DeleteItem(m_hWnd,nIdx)?true:false); + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + *pRet = ret; + return retcode; +} + +STDMETHODIMP CControl::GetCount(VARIANT *pRet) +{ + CComVariant ret; + ::VariantInit(pRet); + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚̃JƒEƒ“ƒg + int mx = ::SendMessage(m_hWnd,CB_GETCOUNT,0,0); + if(mx == LB_ERR) mx = 0; + ret = (short)mx; + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚̃JƒEƒ“ƒg + int mx = ::SendMessage(m_hWnd,LB_GETCOUNT,0,0); + if(mx == LB_ERR) mx = 0; + ret = (short)mx; + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚̃JƒEƒ“ƒg + ret = (short)ListView_GetItemCount(m_hWnd); + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + ret.Detach(pRet); + return retcode; +} + +STDMETHODIMP CControl::get_CurrentSelectedItem(VARIANT *pVal) +{ + ::VariantInit(pVal); + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + CComVariant ret; + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ð‚ð•Ô‚· + ret = (long)::SendMessage(m_hWnd,CB_GETCURSEL,0,0); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ðƒAƒCƒeƒ€‚ð•Ô‚· + if(!(m_style & LBS_MULTIPLESEL)){ + // ƒVƒ“ƒOƒ‹ƒZƒŒƒNƒg‚̏ꍇ + ret = (long)::SendMessage(m_hWnd,LB_GETCURSEL,0,0); + } + else{ + // ƒ}ƒ‹ƒ`ƒZƒŒƒNƒg‚̏ꍇ‚͍ŏ‰‚Ì‘I‘ðƒAƒCƒeƒ€‚ð•Ô‚· + ret = (long)-1; + int mx = ::SendMessage(m_hWnd,LB_GETCOUNT,0,0); + if(mx > 0){ + long* pBuf = new long[mx+1]; + int cnt = ::SendMessage(m_hWnd,LB_GETSELITEMS,mx,(LPARAM)pBuf); + if(cnt != LB_ERR && cnt > 0){ + ret = (long)pBuf[0]; + } + delete[]pBuf; + } + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚̍ŏ‰‚Ì‘I‘ðƒAƒCƒeƒ€‚ð’T‚· + ret = (long)ListView_GetNextItem(m_hWnd,-1,LVNI_SELECTED); + } + else if(!lstrcmp(m_classname,WC_TREEVIEW)){ + // ƒcƒŠ[ƒrƒ…[‚ÌŽw’èƒAƒCƒeƒ€‚Ì‘®«‚𒲂ׂé + HTREEITEM hItem = TreeView_GetSelection(m_hWnd); + if(hItem){ + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->AddRef(); + pItem->SetParam(m_hWnd,hItem); + IUnknown* pUnk = NULL; + if(pItem->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + ret = pUnk; + } + } + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + ret.Detach(pVal); + return retcode; +} + +STDMETHODIMP CControl::put_CurrentSelectedItem(VARIANT newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + HRESULT retcode = S_OK; + long nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I4,&newVal) == S_OK){ + nIdx = varIdx.lVal; + } + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚ð‘I‘ð‚ðŽw’è‚·‚é + ::SendMessage(m_hWnd,CB_SETCURSEL,nIdx,0); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚Ì‘I‘ð + if(!(m_style & LBS_MULTIPLESEL)){ + // ƒVƒ“ƒOƒ‹ƒZƒŒƒNƒg‚̏ꍇ + ::SendMessage(m_hWnd,LB_SETCURSEL,nIdx,0); + } + else{ + // ƒ}ƒ‹ƒ`ƒZƒŒƒNƒg‚̏ꍇ + int mx = ::SendMessage(m_hWnd,LB_GETCOUNT,0,0); + int i; + for(i=0;i= 0 && nIdx < mx){ + ::SendMessage(m_hWnd,LB_SETSEL,true,nIdx); + } + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚Ì‘I‘ð + int mx = ListView_GetItemCount(m_hWnd); + int i; + for(i = 0 ; i= 0 && nIdx < mx){ + ListView_SetItemState(m_hWnd,i,LVIS_SELECTED ,LVIS_SELECTED); + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + return S_OK; +} + +STDMETHODIMP CControl::get__NewEnum(IUnknown **pVal) +{ + *pVal = NULL; + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + VARIANT* pvarArray = NULL; + int mx = 0; + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ð‚ð•Ô‚· + int nIdx = ::SendMessage(m_hWnd,CB_GETCURSEL,0,0); + mx = 1; + pvarArray = new VARIANT[1]; + ::VariantInit(&pvarArray[0]); + pvarArray[0].vt = VT_I2; + pvarArray[0].iVal = nIdx; + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ðƒAƒCƒeƒ€‚ð•Ô‚· + if(!(m_style & LBS_MULTIPLESEL)){ + // ƒVƒ“ƒOƒ‹ƒZƒŒƒNƒg‚̏ꍇ + int nIdx = ::SendMessage(m_hWnd,LB_GETCURSEL,0,0); + mx = 1; + pvarArray = new VARIANT[1]; + ::VariantInit(&pvarArray[0]); + pvarArray[0].vt = VT_I2; + pvarArray[0].iVal = nIdx; + } + else{ + // ƒ}ƒ‹ƒ`ƒZƒŒƒNƒg‚̏ꍇ‚͍ŏ‰‚Ì‘I‘ðƒAƒCƒeƒ€‚ð•Ô‚· + int sz = ::SendMessage(m_hWnd,LB_GETCOUNT,0,0); + long* pBuf = new long[sz+1]; + mx = ::SendMessage(m_hWnd,LB_GETSELITEMS,sz,(LPARAM)pBuf); + if(mx != LB_ERR){ + // ‘I‘ð‚ª•Ô‚³‚ꂽê‡ + pvarArray = new VARIANT[mx+1]; + int i; + for(i=0 ; i* pCol = NULL; + if(pCol->CreateInstance(&pCol) == S_OK){ + pCol->AddRef(); + pCol->Init(&pvarArray[0],&pvarArray[mx],pCol,AtlFlagCopy); + *pVal = pCol; + } + delete[]pvarArray; + return S_OK; +} + + +STDMETHODIMP CControl::get_ItemSelectState(VARIANT idx, VARIANT *pVal) +{ + ::VariantInit(pVal); + CComVariant ret; + + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + int nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = idx.iVal; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ð‚ð•Ô‚· + int nSel = ::SendMessage(m_hWnd,CB_GETCURSEL,0,0); + // Žw’肵‚½ƒAƒCƒeƒ€‚Æ‘I‘ð‚ªˆê’v‚µ‚Ä‚¢‚ê‚Îtrue + ret = (bool)((nSel == nIdx)?true:false); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ðƒAƒCƒeƒ€‚ð•Ô‚· + if(!(m_style & LBS_MULTIPLESEL)){ + // ƒVƒ“ƒOƒ‹ƒZƒŒƒNƒg‚̏ꍇ + int nSel = ::SendMessage(m_hWnd,LB_GETCURSEL,0,0); + // Žw’肵‚½ƒAƒCƒeƒ€‚Æ‘I‘ð‚ªˆê’v‚µ‚Ä‚¢‚ê‚Îtrue + ret = (bool)((nSel == nIdx)?true:false); + } + else{ + // ƒ}ƒ‹ƒ`ƒZƒŒƒNƒg‚̏ꍇ + ret = (bool)(::SendMessage(m_hWnd,LB_GETSEL,nIdx,0)>0?true:false); + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚ÌŽw’èƒAƒCƒeƒ€‚Ì‘®«‚𒲂ׂé + int mx = ListView_GetItemCount(m_hWnd); + if(nIdx >= 0 && nIdx < mx){ + UINT state = ListView_GetItemState(m_hWnd,nIdx,LVNI_SELECTED); + ret = (bool)((state & LVNI_SELECTED)?true:false); + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + ret.Detach(pVal); + return retcode; +} + +STDMETHODIMP CControl::put_ItemSelectState(VARIANT idx, VARIANT newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + int nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = idx.iVal; + } + BOOL bSelected = false; + CComVariant varSelected; + if(varSelected.ChangeType(VT_I2,&newVal) == S_OK){ + bSelected = newVal.iVal; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ð‚ð•ÏX‚·‚é + ::SendMessage(m_hWnd,CB_SETCURSEL,bSelected?nIdx:-1,0); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚ÌŒ»Ý‚Ì‘I‘ðƒAƒCƒeƒ€‚ð•Ô‚· + if(!(m_style & LBS_MULTIPLESEL)){ + // ƒVƒ“ƒOƒ‹ƒZƒŒƒNƒg‚̏ꍇ + ::SendMessage(m_hWnd,LB_SETCURSEL,bSelected?nIdx:-1,0); + } + else{ + // ƒ}ƒ‹ƒ`ƒZƒŒƒNƒg + ::SendMessage(m_hWnd,LB_SETSEL,nIdx,bSelected); + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚ÌŽw’èƒAƒCƒeƒ€‚Ì‘®«‚𒲂ׂé + int mx = ListView_GetItemCount(m_hWnd); + if(nIdx >= 0 && nIdx < mx){ + ListView_SetItemState(m_hWnd,nIdx,bSelected?LVNI_SELECTED:0,LVNI_SELECTED); + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + return retcode; +} + +STDMETHODIMP CControl::get_SelectedCount(short *pVal) +{ + *pVal = 0; + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚̃JƒEƒ“ƒg + int nIdx = ::SendMessage(m_hWnd,CB_GETCURSEL,0,0); + *pVal = (short)(nIdx>=0?1:0); + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚̃JƒEƒ“ƒg + if(!(m_style & LBS_MULTIPLESEL)){ + int nIdx = ::SendMessage(m_hWnd,LB_GETCURSEL,0,0); + *pVal = (short)(nIdx>=0?1:0); + } + else{ + // ƒ}ƒ‹ƒ`ƒZƒŒƒNƒg + *pVal = (short)::SendMessage(m_hWnd,LB_GETSELCOUNT,0,0); + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚̃JƒEƒ“ƒg + *pVal = (short)ListView_GetSelectedCount(m_hWnd); + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + return retcode; +} + +STDMETHODIMP CControl::get_TreeRoot(VARIANT *pVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + ::VariantInit(pVal); + if(!lstrcmp(m_classname,WC_TREEVIEW)){ + HTREEITEM hItem = TreeView_GetRoot(m_hWnd); + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->AddRef(); + pItem->SetParam(m_hWnd,hItem); + IUnknown* pUnk = NULL; + if(pItem->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + } + return S_OK; +} + +void CControl::ListSort(int column) +{ + if(!m_hParent || !m_hWnd){ + return; + } + // ‚¨‚È‚¶ƒJƒ‰ƒ€‚ðƒ\[ƒg‚µ‚½ê‡‚Í‹t‡‚Æ‚·‚é + if(m_dLastSortColumn == column){ + m_bSortReverse = !m_bSortReverse; + } + else{ + m_bSortReverse = false; + } + m_dLastSortColumn = column; + m_typCompare = VT_EMPTY; + // ƒ\[ƒg‚ðŒÄ‚яo‚· + ListView_SortItems(m_hWnd,CompareFunc,(LPARAM)this); +} + +int CControl::CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) +{ + if(!lParam1 || !lParam2){ + // ƒCƒŒƒMƒ…ƒ‰[Bƒf[ƒ^[‚ª‚È‚¢‚Ì‚Å”äŠr•s‰Â”\ + return 0; + } + CControl* me = (CControl*)lParamSort; + + IObjectMap* pMap1 = (IObjectMap*)lParam1; + IObjectMap* pMap2 = (IObjectMap*)lParam2; + + CHAR mes[16]; + wsprintf(mes,"SORT%d",me->m_dLastSortColumn); + CComVariant key(mes); + + CComVariant val1,val2; + if(!me->m_bSortReverse){ + pMap1->get_Value(key,&val1); + pMap2->get_Value(key,&val2); + } + else{ + pMap1->get_Value(key,&val2); + pMap2->get_Value(key,&val1); + } + + if(me->m_typCompare == VT_EMPTY){ + // ‚Ü‚¾”äŠr‚ðŠJŽn‚µ‚Ä‚¢‚È‚¢‚È‚ç”äŠrƒ^ƒCƒv‚ðŒˆ’è‚·‚é + me->m_typCompare = val1.vt; + if(val1.vt != val2.vt){ + me->m_typCompare = VT_BSTR; + } + } + + int ret = 0; + switch(me->m_typCompare) + { + case VT_UI1: + { + val1.ChangeType(VT_UI1); + val2.ChangeType(VT_UI1); + ret = val1.bVal - val2.bVal; + break; + } + case VT_I2: + { + val1.ChangeType(VT_I2); + val2.ChangeType(VT_I2); + ret = val1.iVal - val2.iVal; + break; + } + case VT_I4: + { + val1.ChangeType(VT_I4); + val2.ChangeType(VT_I4); + ret = val1.lVal - val2.lVal; + break; + } + case VT_R4: + { + val1.ChangeType(VT_R4); + val2.ChangeType(VT_R4); + ret = val1.fltVal > val2.fltVal; + break; + } + case VT_R8: + { + val1.ChangeType(VT_R8); + val2.ChangeType(VT_R8); + ret = val1.dblVal > val2.dblVal; + break; + } + case VT_CY: + { + val1.ChangeType(VT_CY); + val2.ChangeType(VT_CY); + ret = (int)(val1.cyVal.int64 - val2.cyVal.int64); //UNDONE: ‚æ‚낵‚­‚È‚¢BŒ¸ŽZŒ‹‰Ê‚ªŒ…‚ ‚ӂꂵ‚½ê‡A”äŠrŠÖ”‚ª”j’]‚·‚éB‚È‚¨‚³‚˂΁B + break; + } + case VT_DATE: + { + val1.ChangeType(VT_DATE); + val2.ChangeType(VT_DATE); + ret = val1.date > val2.date; + break; + } + case VT_BSTR: + { + if(val1.ChangeType(VT_BSTR) == S_OK && + val2.ChangeType(VT_BSTR) == S_OK){ + ret = lstrcmpW(val1.bstrVal,val2.bstrVal); + } + break; + } + default: + break; + } + return ret; +} + +void CControl::OnRClick() +{ + if(!m_hParent || !m_hWnd){ + return; + } + if(!lstrcmp(m_classname,WC_TREEVIEW)){ + // ƒcƒŠ[ƒrƒ…[‚Å‚ ‚ê‚΃hƒƒbƒvƒnƒCƒ‰ƒCƒg‚ð‘I‘ð‚É‚·‚é + HTREEITEM hItem = TreeView_GetDropHilight(m_hWnd); + if(hItem){ + TreeView_SelectItem(m_hWnd,hItem); + } + } +} + + +STDMETHODIMP CControl::get_ItemCheckState(VARIANT idx, BOOL *pVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + if(lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[ˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + return DISP_E_EXCEPTION; + } + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + *pVal = VB_FALSE; + if(m_afterstyle & LVS_EX_CHECKBOXES){ + *pVal = ListView_GetCheckState(m_hWnd,varIdx.iVal)?VB_TRUE:VB_FALSE; + } + return S_OK; +} + +STDMETHODIMP CControl::put_ItemCheckState(VARIANT idx, BOOL newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + if(lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[ˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + return DISP_E_EXCEPTION; + } + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + if(m_afterstyle & LVS_EX_CHECKBOXES){ + ListView_SetCheckState(m_hWnd,varIdx.iVal,newVal); + } + return S_OK; +} + +STDMETHODIMP CControl::DeleteSelectedItem() +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒgƒ{ƒbƒNƒX‚Ì‘I‘ðíœ + CComVariant varRet,dmy; + while(get_CurrentSelectedItem(&varRet) == S_OK && varRet.vt != VT_EMPTY){ + varRet.ChangeType(VT_I4); + if(varRet.lVal < 0){ + break; + } + DeleteString(varRet,&dmy); + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + // ƒŠƒXƒgƒrƒ…[‚̍폜 + int nIdx = -1; + while((nIdx = ListView_GetNextItem(m_hWnd,nIdx,LVNI_SELECTED)) != -1){ + CComVariant varIdx((long)nIdx),dmy; + DeleteString(varIdx,&dmy); + nIdx = -1; + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + return S_OK; +} + +STDMETHODIMP CControl::get_ItemText(VARIANT idx, BSTR *pVal) +{ + _bstr_t tmp; + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + int nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = varIdx.iVal; + } + if(nIdx < 0){ + return DISP_E_TYPEMISMATCH; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,"COMBOBOX")){ + // ƒRƒ“ƒzƒ{ƒbƒNƒX‚©‚當Žš—ñ‚ðŽæ“¾‚·‚é + int siz = ::SendMessage(m_hWnd,CB_GETLBTEXTLEN,nIdx,0); + if(siz > 0){ + LPTSTR p = new CHAR[siz+1]; + if(::SendMessage(m_hWnd,CB_GETLBTEXT,nIdx,(LPARAM)p) > 0){ + tmp = (LPCSTR)p; + } + delete[]p; + } + } + else if(!lstrcmp(m_classname,"LISTBOX")){ + // ƒŠƒXƒg‚©‚當Žš—ñ‚ðŽæ“¾‚·‚é + int siz = ::SendMessage(m_hWnd,LB_GETTEXTLEN,nIdx,0); + if(siz > 0){ + LPTSTR p = new CHAR[siz+1]; + if(::SendMessage(m_hWnd,LB_GETTEXT,nIdx,(LPARAM)p) > 0){ + tmp = (LPCSTR)p; + } + delete[]p; + } + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + CComVariant arg,ret; + arg = (long)0; + if((retcode = GetColumnText(idx,arg,&ret)) == S_OK){ + if(ret.ChangeType(VT_BSTR) == S_OK){ + tmp = ret.bstrVal; + } + } + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + *pVal = tmp.copy(); + return retcode; +} + +STDMETHODIMP CControl::put_ItemText(VARIANT idx, BSTR newVal) +{ + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + int nIdx = -1; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I2,&idx) == S_OK){ + nIdx = varIdx.iVal; + } + if(nIdx < 0){ + return DISP_E_TYPEMISMATCH; + } + + HRESULT retcode = S_OK; + if(!lstrcmp(m_classname,WC_LISTVIEW)){ + CComVariant arg,text; + arg = (long)0; + text = (BSTR)newVal; + retcode = SetColumnText(idx,arg,text); + } + else{ + // ‚»‚êˆÈŠO‚̓Tƒ|[ƒgŠO + ErrorInfo(IDS_ERR_NOTSUPPORTCONTROL); + retcode = DISP_E_EXCEPTION; + } + return retcode; +} + +STDMETHODIMP CControl::SetClassEvent(BSTR name,VARIANT* pvarUnk) +{ + m_bstrClassEvent = name; + GetThisInterface(pvarUnk); + return S_OK; +} + +void CControl::GetClassEvent(BSTR *pEventName) +{ + *pEventName = m_bstrClassEvent.copy(); +} + +STDMETHODIMP CControl::CreateChild(VARIANT text, VARIANT varItem, VARIANT* pvarUnk) +{ + ::VariantInit(pvarUnk); + if(!m_hParent || !m_hWnd){ + ErrorInfo(IDS_ERR_DESTROYED); + return DISP_E_EXCEPTION; + } + // ƒAƒCƒeƒ€‚ÌŒŸØ + CComVariant tmp; + if(tmp.ChangeType(VT_UNKNOWN,&varItem) == S_OK){ + ITreeItem * pItem = NULL; + if(tmp.punkVal->QueryInterface(IID_ITreeItem,(void**)&pItem) != S_OK){ + return DISP_E_UNKNOWNINTERFACE; + } + IUnknown* pUnk = NULL; + if(pItem->Create(text,&pUnk) == S_OK){ + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + } + pItem->Release(); + } + else{ + tmp.ChangeType(VT_VARIANT,&varItem); + if(tmp.vt == VT_ERROR || tmp.vt == VT_NULL || tmp.vt == VT_EMPTY){ + // ƒ‹[ƒgã‚ɃAƒCƒeƒ€‚ðì¬‚·‚é + AddString(text,pvarUnk); + } + else{ + return DISP_E_TYPEMISMATCH; + } + } + return S_OK; +} diff --git a/Control.h b/Control.h new file mode 100644 index 0000000..487a2bc --- /dev/null +++ b/Control.h @@ -0,0 +1,189 @@ +// Control.h : CControl ‚̐錾 + +#ifndef __CONTROL_H_ +#define __CONTROL_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include "treeitem.h" + +///////////////////////////////////////////////////////////////////////////// +// CControl +class ATL_NO_VTABLE CControl : + public CComObjectRootEx, +// public CComCoClass, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IDispatchImpl +{ +public: + CControl() + { + m_x = 0; + m_y = 0; + m_h = 0; + m_w = 0; + m_bChecked = false; + m_exstyle = 0; + m_style = 0; + m_nID = 0; + m_hWnd = NULL; + m_hParent = NULL; + ZeroMemory(m_classname,MAX_PATH); + ZeroMemory(m_caption ,MAX_PATH); + // ƒŠƒXƒgƒRƒ“ƒgƒ[ƒ‹—p + m_nColumnCount = 0; + m_dLastSortColumn = -1; //ÅŒã‚Ƀ\[ƒg‚µ‚½ƒJƒ‰ƒ€ + } + void SetParam(DWORD afterstyle,DWORD exstyle,LPCSTR classname,LPCSTR caption,DWORD style,int x,int y,int w,int h,int nID) + { + CHAR tmp[64]; + wsprintf(tmp,"OnCommand%d",nID); + m_x = x; + m_y = y; + m_h = h; + m_w = w; + m_exstyle = exstyle; + m_style = style; + lstrcpy(m_classname,classname); + lstrcpy(m_caption,caption); + m_nID = nID; + m_bstrClassEvent = tmp; + m_hWnd = NULL; + m_hParent = NULL; + m_afterstyle = afterstyle; + } + HWND GetHWnd() + { + return m_hWnd; + } + void Redraw() + { + RedrawWindow(m_hWnd,NULL,NULL,RDW_ERASE|RDW_FRAME|RDW_INTERNALPAINT|RDW_INVALIDATE); + } + void SetFont(HFONT hFont) + { + if(m_hWnd){ + ::SendMessage(m_hWnd,WM_SETFONT,(WPARAM)hFont,true); + } + } + void SetColor(DWORD color) + { + if(m_hWnd){ + if(!lstrcmp(m_classname,WC_TREEVIEW)){ + TreeView_SetBkColor(m_hWnd,COLORREF(color)); + } + else if(!lstrcmp(m_classname,WC_LISTVIEW)){ + ListView_SetBkColor(m_hWnd,COLORREF(color)); + } + } + } + void FinalRelease() + { + ATLTRACE("CControl::FinalRelease\r\n"); + Destroy(); + } + +//DECLARE_REGISTRY_RESOURCEID(IDR_CONTROL) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CControl) + COM_INTERFACE_ENTRY(IControl) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) +END_COM_MAP() +BEGIN_CONNECTION_POINT_MAP(CControl) +END_CONNECTION_POINT_MAP() + + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// IControl +public: + STDMETHOD(CreateChild)(/*[in]*/VARIANT text,/*[in]*/VARIANT varItem,/*[out,retval]*/VARIANT* pvarUnk); + void GetClassEvent(BSTR* pEventName); + STDMETHOD(SetClassEvent)(/*[in]*/BSTR name,/*[out,retval]*/VARIANT* pUnk); + STDMETHOD(get_ItemText)(/*[in]*/VARIANT idx, /*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_ItemText)(/*[in]*/VARIANT idx, /*[in]*/ BSTR newVal); + STDMETHOD(DeleteSelectedItem)(); + STDMETHOD(get_ItemCheckState)(/*[in]*/VARIANT idx, /*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_ItemCheckState)(/*[in]*/VARIANT idx, /*[in]*/ BOOL newVal); + STDMETHOD(DeleteAllItems)(); + STDMETHOD(get_ItemObject)(/*[in]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(get_TreeRoot)(/*[out, retval]*/ VARIANT *pVal); + STDMETHOD(get_SelectedCount)(/*[out, retval]*/ short *pVal); + STDMETHOD(get_ItemSelectState)(/*[in]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(put_ItemSelectState)(/*[in]*/VARIANT idx, /*[in]*/ VARIANT newVal); + STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown* *pVal); + STDMETHOD(get_CurrentSelectedItem)(/*[out, retval]*/ VARIANT *pVal); + STDMETHOD(put_CurrentSelectedItem)(/*[in]*/ VARIANT newVal); + STDMETHOD(GetCount)(/*[out,retval]*/VARIANT* pRet); + STDMETHOD(DeleteString)(/*[in]*/VARIANT idx,/*[out,retval]*/VARIANT* pRet); + STDMETHOD(GetColumnText)(/*[in]*/VARIANT idx,/*[in]*/VARIANT col,/*[out,retval]*/VARIANT* pText); + STDMETHOD(SetColumnText)(/*[in]*/VARIANT item,/*[in]*/VARIANT col,/*[in]*/VARIANT text); + STDMETHOD(AddString)(/*[in]*/VARIANT text,/*[out,retval]*/VARIANT* pRet); + STDMETHOD(get_HWND)(/*[out, retval]*/ long *pVal); + STDMETHOD(Refresh)(); + STDMETHOD(get_ClassName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Exstyle)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_Exstyle)(/*[in]*/ long newVal); + STDMETHOD(get_Style)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_Style)(/*[in]*/ long newVal); + STDMETHOD(SetID)(/*[in]*/VARIANT varID,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(SetCheck)(/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(SetPlacement)(/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in,optional]*/VARIANT w,/*[in,optional]*/VARIANT h,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(get_PosY)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_PosY)(/*[in]*/ short newVal); + STDMETHOD(get_PosX)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_PosX)(/*[in]*/ short newVal); + STDMETHOD(get_Height)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_Height)(/*[in]*/ short newVal); + STDMETHOD(get_Width)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_Width)(/*[in]*/ short newVal); + STDMETHOD(get_CheckState)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_CheckState)(/*[in]*/ short newVal); + STDMETHOD(get_Enable)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Enable)(/*[in]*/ BOOL newVal); + STDMETHOD(get_Visibility)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Visibility)(/*[in]*/ BOOL newVal); + STDMETHOD(get_ID)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_ID)(/*[in]*/ short newVal); + STDMETHOD(get_Text)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_Text)(/*[in]*/ BSTR newVal); + void OnRClick(); + void ListSort(int column); + BOOL Create(HWND hParam); + int GetID(); + void GetThisInterface(VARIANT* pvarUnk); + void Destroy(); + +protected: +// LRESULT (CALLBACK *subclassproc)(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam); +// static LRESULT CALLBACK WinProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam); +static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort); + +protected: + int m_x; + int m_y; + int m_h; + int m_w; + int m_nID; + BOOL m_bChecked; + DWORD m_exstyle; + DWORD m_style; + DWORD m_afterstyle; + TCHAR m_caption[MAX_PATH]; + TCHAR m_classname[MAX_PATH]; + _bstr_t m_bstrClassEvent; + HWND m_hParent; + HWND m_hWnd; + BOOL m_bSortReverse; + VARTYPE m_typCompare; + int m_dLastSortColumn; + int m_nColumnCount; + LPSTR ConvertVariantToString(VARIANT text); +}; + +#endif //__CONTROL_H_ diff --git a/Control.rgs b/Control.rgs new file mode 100644 index 0000000..f9775d7 --- /dev/null +++ b/Control.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.Control.1 = s 'SeraphyScriptTools..Control Class' + { + CLSID = s '{AE3E878A-9C96-415D-88CB-F6F993DFAFE4}' + } + SeraphyScriptTools.Control = s 'SeraphyScriptTools..Control Class' + { + CLSID = s '{AE3E878A-9C96-415D-88CB-F6F993DFAFE4}' + CurVer = s 'SeraphyScriptTools.Control.1' + } + NoRemove CLSID + { + ForceRemove {AE3E878A-9C96-415D-88CB-F6F993DFAFE4} = s 'SeraphyScriptTools..Control Class' + { + ProgID = s 'SeraphyScriptTools.Control.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Control' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/Draw.cpp b/Draw.cpp new file mode 100644 index 0000000..7fb3f55 --- /dev/null +++ b/Draw.cpp @@ -0,0 +1,271 @@ +// Draw.cpp : CCanvas ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "Draw.h" +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CCanvas + +void CCanvas::FinalRelease() +{ + ATLTRACE("CCanvas::FinalRelease\r\n"); + // ƒvƒŠƒ“ƒ^ƒfƒoƒCƒX‚̉ð•ú + if(m_pPrinterDeviceMode){ + delete m_pPrinterDeviceMode; + m_pPrinterDeviceMode = NULL; + } + // ƒŒƒCƒ„[ƒIƒuƒWƒFƒNƒg‚̉ð•ú + int i; + for(i=0 ; iRelease(); + m_pComLayer[i] = NULL; + } + } +} + +STDMETHODIMP CCanvas::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ICanvas + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CCanvas::get_Layer(VARIANT varLay, VARIANT *pVal) +{ + // ƒŒƒCƒ„[ƒIƒuƒWƒFƒNƒg‚̎󂯓n‚µ + CComVariant vLay; + int nLayer = 0; + if(vLay.ChangeType(VT_I2,&varLay) == S_OK){ + nLayer = vLay.iVal; + } + if(!(nLayer >= 0 && nLayer < MAXLAYER) || m_pComLayer[nLayer] == NULL){ + ErrorInfo(IDS_ERR_LAYERBOUND); + return DISP_E_EXCEPTION; + } + IUnknown* pUnk = NULL; + if(m_pComLayer[nLayer]->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + ::VariantInit(pVal); + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + return S_OK; +} + +///////////////////////////////// +// ˆóüƒƒ\ƒbƒhEƒvƒƒpƒeƒB +STDMETHODIMP CCanvas::PrintAs(VARIANT print,VARIANT* pRet) +{ + CComVariant varRet,varPrint; + PRINTDLG pdlg = {0}; + pdlg.lStructSize = sizeof(PRINTDLG); + pdlg.hwndOwner = m_hParent; + pdlg.Flags = PD_NOPAGENUMS | PD_RETURNDC; + if(PrintDlg(&pdlg)){ + if(pdlg.hDevMode){ + // ƒvƒŠƒ“ƒgƒfƒoƒCƒXƒpƒ‰ƒ[ƒ^[‚ðŽæ“¾‚·‚é + DWORD siz = GlobalSize(pdlg.hDevMode); + if(m_pPrinterDeviceMode){ + delete m_pPrinterDeviceMode; + } + DEVMODE *pDevMode = (DEVMODE*)GlobalLock(pdlg.hDevMode); + m_pPrinterDeviceMode = (DEVMODE*)new BYTE[siz+1]; + CopyMemory(m_pPrinterDeviceMode,pDevMode,siz); + // ƒvƒŠƒ“ƒ^–¼‚ð•Û‘¶ + lstrcpy(m_szPrinterName,(LPCSTR)pDevMode->dmDeviceName); + varRet = (LPCSTR)(pDevMode->dmDeviceName); + GlobalUnlock(pdlg.hDevMode); + GlobalFree(pdlg.hDevMode); + } + if(pdlg.hDevNames){ + GlobalFree(pdlg.hDevNames); + } + // ƒvƒŠƒ“ƒg‚·‚é‚©Ý’肾‚¯‚©? + BOOL bPrintOut = true; + if(print.vt != VT_EMPTY && print.vt != VT_NULL && print.vt != VT_ERROR + && varPrint.ChangeType(VT_I2,&print) == S_OK){ + bPrintOut = varPrint.iVal; + } + CDC dc; + dc.m_bPrinting = true; + dc.m_hDC = pdlg.hDC; + if(bPrintOut){ + PrintCore(dc); + } + DeleteDC(dc.m_hDC); + } + varRet.Detach(pRet); + return S_OK; +} + +STDMETHODIMP CCanvas::Print() +{ + if(!m_pPrinterDeviceMode){ + // ‚Ü‚¾ƒvƒŠƒ“ƒ^ƒfƒoƒCƒX‚ðƒI[ƒvƒ“‚µ‚Ä‚¢‚È‚¢ + CComVariant dmy; + PrintAs(dmy,&dmy); + } + else{ + // ‚·‚łɎ擾‚³‚ꂽƒvƒŠƒ“ƒ^–¼‚ƃfƒoƒCƒXƒpƒ‰ƒ[ƒ^[‚ňóü‚·‚é + HDC hdc = CreateDC(NULL,m_szPrinterName,NULL,m_pPrinterDeviceMode); + CDC dc; + dc.m_hDC = hdc; + dc.m_bPrinting = true; + PrintCore(dc); + DeleteDC(dc.m_hDC); + } + return S_OK; +} + +BOOL CCanvas::PrintCore(CDC dc) +{ + ::SetCursor(::LoadCursor(NULL,IDC_WAIT)); + // ƒvƒŠƒ“ƒ^‚̃I[ƒvƒ“ + DOCINFO dinfo = {0}; + dinfo.cbSize = sizeof(DOCINFO); + dinfo.lpszDocName = "SeraphyScriptTools"; + int nJob = StartDoc(dc.m_hDC,&dinfo); + StartPage(dc.m_hDC); + // ˆóü”͈͂̐ݒè + SetMapMode(dc.m_hDC,MM_LOMETRIC); + int width = GetDeviceCaps(dc.m_hDC,PHYSICALWIDTH); + int height = GetDeviceCaps(dc.m_hDC,PHYSICALHEIGHT); + SetViewportOrgEx(dc.m_hDC,0,height,NULL); + SetWindowOrgEx(dc.m_hDC,-m_marginWidth,-m_marginHeight,NULL); + // ”wŒiƒ‚[ƒhÝ’è + SetBkMode(dc.m_hDC,TRANSPARENT); + // ƒŒƒCƒ„[‚̈óü + dc.m_rct.bottom = GetDeviceCaps(dc.m_hDC,VERTSIZE) * 10; + dc.m_rct.right = GetDeviceCaps(dc.m_hDC,HORZSIZE) * 10; + dc.m_rct.bottom += - (m_marginHeight * 2); // ƒrƒ…[ƒ|[ƒg‚̐ݒè‚ŏc—]”’‚³‚ê‚Ä‚¢‚é‚Ì‚ðƒLƒƒƒ“ƒZƒ‹‚·‚é + int i; + for(i=0;iDraw(dc); + } + // I—¹ + EndPage(dc.m_hDC); + EndDoc(dc.m_hDC); + ::SetCursor(::LoadCursor(NULL,IDC_ARROW)); + return true; +} + +STDMETHODIMP CCanvas::GetPrinterDefault(VARIANT name) +{ + TCHAR szPrinterName[MAX_PATH]; + DWORD namesz = MAX_PATH; + CComVariant varName; + if(varName.ChangeType(VT_BSTR,&name) == S_OK){ + WideCharToMultiByte(GetACP(),0,varName.bstrVal,-1,szPrinterName,MAX_PATH,NULL,NULL); + } + else if(!GetDefaultPrinter(szPrinterName,&namesz)){ + // Šù’è‚̃vƒŠƒ“ƒ^‚ªŒ©‚‚©‚ç‚È‚©‚Á‚½ê‡ + ErrorInfo(IDS_ERR_NODEFPRINTER); + return DISP_E_EXCEPTION; + } + HANDLE hp; + if(OpenPrinter(szPrinterName,&hp,NULL)){ + if(m_pPrinterDeviceMode){ + // Šù‘¶‚̃oƒbƒtƒA‚ðƒNƒŠƒA + delete m_pPrinterDeviceMode; + } + // •K—v‚ȃpƒ‰ƒ[ƒ^[‚Ì•ÛŽ + DWORD sz = (DWORD)DocumentProperties(m_hParent,hp,szPrinterName,NULL,NULL,0); + m_pPrinterDeviceMode = (DEVMODE*)new BYTE[sz+1]; + DocumentProperties(m_hParent,hp,szPrinterName,m_pPrinterDeviceMode,NULL,DM_OUT_BUFFER); + ClosePrinter(hp); + // ƒvƒŠƒ“ƒ^–¼‚Ì•Û‘¶ + lstrcpy(m_szPrinterName,szPrinterName); + } + else{ + // ƒvƒŠƒ“ƒ^î•ñ‚̎擾‚ÉŽ¸”s‚µ‚½ê‡ + ErrorInfo(IDS_ERR_PRINTERSETTING); + return DISP_E_EXCEPTION; + } + return S_OK; +} + +STDMETHODIMP CCanvas::get_MarginWidth(long *pVal) +{ + *pVal = m_marginWidth; + return S_OK; +} + +STDMETHODIMP CCanvas::put_MarginWidth(long newVal) +{ + m_marginWidth = newVal; + return S_OK; +} + +STDMETHODIMP CCanvas::get_MarginHeight(long *pVal) +{ + *pVal = m_marginHeight; + return S_OK; +} + +STDMETHODIMP CCanvas::put_MarginHeight(long newVal) +{ + m_marginHeight = newVal; + return S_OK; +} + +void CCanvas::Draw(HDC hdc,RECT& rt) +{ + // ƒ}ƒbƒsƒ“ƒOƒ‚[ƒh + int md = GetMapMode(hdc); + SetMapMode(hdc,MM_LOMETRIC); + POINT oldPort,oldWindow; + SetViewportOrgEx(hdc,0,rt.bottom,&oldPort); + SetWindowOrgEx(hdc,0,0,&oldWindow); + // ƒŒƒCƒ„[ƒIƒuƒWƒFƒNƒg‚É•`‰æ‚ðs‚킹‚é + CDC dc; + dc.m_hDC = hdc; + dc.m_bPrinting = false; + dc.m_rct = rt; + int i; + for(i=0 ; iDraw(dc); + } + } + SetWindowOrgEx(hdc,oldWindow.x,oldWindow.y,NULL); + SetViewportOrgEx(hdc,oldPort.x,oldPort.y,NULL); + SetMapMode(hdc,md); +} + +void CCanvas::DetachOwner() +{ + // ƒI[ƒi[ƒEƒBƒ“ƒhƒE‚ª‚È‚­‚È‚éB + m_hParent = NULL; +} + +void CCanvas::AttachOwner(HWND hParent) +{ + // ‚±‚̃IƒuƒWƒFƒNƒg‚ÍŠî–{“I‚ɐeƒIƒuƒWƒFƒNƒg‚Ɉˑ¶‚µ‚È‚¢B + // ‚½‚¾‚µAƒEƒBƒ“ƒhƒE‚̐eŽqŠÖŒW‚ð‚à‚‚½‚ß‚É‚Ì‚ÝŽw’è‚·‚éB + m_hParent = hParent; +} + +STDMETHODIMP CCanvas::LoadPicture(VARIANT file, VARIANT *punkVal) +{ + ::VariantInit(punkVal); + CComVariant varFile; + if(varFile.ChangeType(VT_BSTR,&file) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + IPicture* pPicture = NULL; + if(OleLoadPicturePath(varFile.bstrVal,NULL,0,NULL,IID_IPicture,(void**)&pPicture) != S_OK){ + ErrorInfo(IDS_ERR_PICTURELOADFAIL); + return DISP_E_EXCEPTION; + } + punkVal->vt = VT_UNKNOWN; + punkVal->punkVal = pPicture; // (IUnknown*) + return S_OK; +} diff --git a/Draw.h b/Draw.h new file mode 100644 index 0000000..ec45291 --- /dev/null +++ b/Draw.h @@ -0,0 +1,85 @@ +// Draw.h : CCanvas ‚̐錾 + +#ifndef __DRAW_H_ +#define __DRAW_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include "layer.h" + +///////////////////////////////////////////////////////////////////////////// +// CCanvas + +#define MAXLAYER 256 + +class ATL_NO_VTABLE CCanvas : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IDispatchImpl +{ +public: + CCanvas() + { + // ”h¶Œ³ŠÖ˜A + m_hParent = NULL; + // ˆóüŠÖ˜A + m_pPrinterDeviceMode = NULL; + m_marginWidth = 150; // 1.5Cm‚̃}[ƒWƒ“ + m_marginHeight = 150; + // ƒŒƒCƒ„[‚̏‰Šú‰» + int i; + for(i=0 ; iCreateInstance(&m_pComLayer[i]) == S_OK){ + m_pComLayer[i]->AddRef(); + } + else{ + // ¶¬‚ÉŽ¸”sB + m_pComLayer[i] = NULL; + } + } + } + void CCanvas::FinalRelease(); + +DECLARE_REGISTRY_RESOURCEID(IDR_CANVAS) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CCanvas) + COM_INTERFACE_ENTRY(ICanvas) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) +END_COM_MAP() +BEGIN_CONNECTION_POINT_MAP(CCanvas) +END_CONNECTION_POINT_MAP() + + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ICanvas +public: + STDMETHOD(LoadPicture)(/*[in]*/VARIANT path,/*[out,retval]*/VARIANT* punkVal); + void AttachOwner(HWND hParent); + void DetachOwner(); + void Draw(HDC hdc,RECT& rt); + STDMETHOD(get_Layer)(/*[in]*/VARIANT varLay, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(Print)(); + STDMETHOD(GetPrinterDefault)(/*[in,optional]*/VARIANT name); + STDMETHOD(get_MarginHeight)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_MarginHeight)(/*[in]*/ long newVal); + STDMETHOD(get_MarginWidth)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_MarginWidth)(/*[in]*/ long newVal); + STDMETHOD(PrintAs)(/*[in,optional]*/VARIANT print,/*[oute,retval]*/VARIANT* pRet); +protected: + CComObject* m_pComLayer[MAXLAYER]; + TCHAR m_szPrinterName[MAX_PATH]; + DEVMODE* m_pPrinterDeviceMode; + long m_marginHeight; + long m_marginWidth; + BOOL PrintCore(CDC dc); + HWND m_hParent; +}; + +#endif //__DRAW_H_ diff --git a/Draw.rgs b/Draw.rgs new file mode 100644 index 0000000..7e1c1f3 --- /dev/null +++ b/Draw.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.Canvas.1 = s 'SeraphyScriptTools.Canvas Class' + { + CLSID = s '{88197854-3CFF-4873-BE89-F508FC768ECD}' + } + SeraphyScriptTools.Canvas = s 'SeraphyScriptTools.Canvas Class' + { + CLSID = s '{88197854-3CFF-4873-BE89-F508FC768ECD}' + CurVer = s 'SeraphyScriptTools.Canvas.1' + } + NoRemove CLSID + { + ForceRemove {88197854-3CFF-4873-BE89-F508FC768ECD} = s 'SeraphyScriptTools.Canvas Class' + { + ProgID = s 'SeraphyScriptTools.Canvas.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Canvas' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/EnumSelect.rgs b/EnumSelect.rgs new file mode 100644 index 0000000..e6f4b2f --- /dev/null +++ b/EnumSelect.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.EnumSelect.1 = s 'SeraphyScriptTools.EnumSelect Class' + { + CLSID = s '{310F6360-13C4-400D-A3AA-8C84B76B00DC}' + } + SeraphyScriptTools.EnumSelect = s 'SeraphyScriptTools.EnumSelect Class' + { + CLSID = s '{310F6360-13C4-400D-A3AA-8C84B76B00DC}' + CurVer = s 'SeraphyScriptTools.EnumSelect.1' + } + NoRemove CLSID + { + ForceRemove {310F6360-13C4-400D-A3AA-8C84B76B00DC} = s 'SeraphyScriptTools.EnumSelect Class' + { + ProgID = s 'SeraphyScriptTools.EnumSelect.1' + VersionIndependentProgID = s 'SeraphyScriptTools.EnumSelect' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/Event.cpp b/Event.cpp new file mode 100644 index 0000000..d7247cf --- /dev/null +++ b/Event.cpp @@ -0,0 +1,204 @@ +// Event.cpp : CEvent ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "Event.h" +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CEvent + +STDMETHODIMP CEvent::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_IEvent + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + + +STDMETHODIMP CEvent::get_Message(short *pVal) +{ + *pVal = m_message; + return S_OK; +} + +STDMETHODIMP CEvent::get_Parameter(short *pVal) +{ + *pVal = m_param; + return S_OK; +} + +STDMETHODIMP CEvent::get_ExtParameter(long *pVal) +{ + *pVal = (long)m_lparam; + return S_OK; +} + +STDMETHODIMP CEvent::get_PosX(double *pVal) +{ + *pVal = (double)m_ptLP.x / 10.; + return S_OK; +} + +STDMETHODIMP CEvent::get_PosY(double *pVal) +{ + *pVal = (double)m_ptLP.y / 10.; + return S_OK; +} + + +STDMETHODIMP CEvent::get_DPosX(long *pVal) +{ + *pVal = (long)m_ptDP.x; + return S_OK; +} + +STDMETHODIMP CEvent::get_DPosY(long *pVal) +{ + *pVal = (long)m_ptDP.y; + return S_OK; +} + +STDMETHODIMP CEvent::get_time(DATE *pVal) +{ + *pVal = m_time; + return S_OK; +} + +void CEvent::SetData(short message, short wParam,DWORD lParam,POINT& pt,POINT& lp) +{ + SYSTEMTIME systim; + GetLocalTime(&systim); + SystemTimeToVariantTime(&systim,&m_time); + m_ptDP = pt; + m_ptLP = lp; + m_message = message; + m_param = wParam; + m_lparam = lParam; +} + +STDMETHODIMP CEvent::IsMouseMove(BOOL *pResult) +{ + *pResult = (m_message == WM_MOUSEMOVE)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsClick(BOOL *pResult) +{ + *pResult = (m_message == WM_LBUTTONDOWN)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsRClick(BOOL *pResult) +{ + *pResult = (m_message == WM_RBUTTONDOWN)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsClickCancel(BOOL *pResult) +{ + *pResult = (m_message == WM_CAPTURECHANGED && + m_param == 1 )?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsRClickCancel(BOOL *pResult) +{ + *pResult = (m_message == WM_CAPTURECHANGED && + m_param == 2 )?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsClickOut(BOOL *pResult) +{ + *pResult = (m_message == WM_LBUTTONUP)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsRClickOut(BOOL *pResult) +{ + *pResult = (m_message == WM_RBUTTONUP)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsCommand(BOOL *pResult) +{ + *pResult = (m_message == WM_COMMAND && + (m_param > IDABORT) )?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsTimer(BOOL *pResult) +{ + *pResult = (m_message == WM_TIMER)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsSize(BOOL *pResult) +{ + *pResult = (m_message == WM_SIZE)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsExit(BOOL *pResult) +{ + *pResult = (m_message == WM_COMMAND && + m_param == IDABORT)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsOK(BOOL *pResult) +{ + *pResult = (m_message == WM_COMMAND && + m_param == IDOK)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsCancel(BOOL *pResult) +{ + *pResult = (m_message == WM_COMMAND && + m_param == IDCANCEL)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsDblClick(BOOL *pResult) +{ + *pResult = (m_message == WM_LBUTTONDBLCLK)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsRDblClick(BOOL *pResult) +{ + *pResult = (m_message == WM_RBUTTONDBLCLK)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsContextMenu(BOOL *pResult) +{ + *pResult = (m_message == WM_NOTIFY && m_lparam == VK_RBUTTON)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsContextDelete(BOOL *pResult) +{ + *pResult = (m_message == WM_NOTIFY && m_lparam == VK_DELETE)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsKeydown(BOOL *pResult) +{ + *pResult = (m_message == WM_KEYDOWN)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CEvent::IsKeydown2(BOOL *pResult) +{ + *pResult = (m_message == WM_KEYDOWN_EX)?VB_TRUE:VB_FALSE; + return S_OK; +} diff --git a/Event.h b/Event.h new file mode 100644 index 0000000..9f41f78 --- /dev/null +++ b/Event.h @@ -0,0 +1,89 @@ +// Event.h : CEvent ‚̐錾 + +#ifndef __EVENT_H_ +#define __EVENT_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ + +///////////////////////////////////////////////////////////////////////////// +// CEvent +class ATL_NO_VTABLE CEvent : + public CComObjectRootEx, +// public CComCoClass, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IDispatchImpl +{ +public: + CEvent() + { + m_message = 0; + m_param = 0; + m_lparam = 0; + m_time = 0.; + m_ptDP.x = 0; + m_ptDP.y = 0; + m_ptLP.x = 0; + m_ptLP.y = 0; + } + +//DECLARE_REGISTRY_RESOURCEID(IDR_EVENT) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CEvent) + COM_INTERFACE_ENTRY(IEvent) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) +END_COM_MAP() +BEGIN_CONNECTION_POINT_MAP(CEvent) +END_CONNECTION_POINT_MAP() + + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// IEvent +public: + STDMETHOD(IsKeydown2)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(get_DPosY)(/*[out, retval]*/ long *pVal); + STDMETHOD(get_DPosX)(/*[out, retval]*/ long *pVal); + STDMETHOD(IsKeydown)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsContextDelete)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsContextMenu)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(get_ExtParameter)(/*[out, retval]*/ long *pVal); + STDMETHOD(IsRDblClick)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsDblClick)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsCancel)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsOK)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsExit)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsSize)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsTimer)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsCommand)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsRClickOut)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsClickOut)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsRClickCancel)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsClickCancel)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsRClick)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsClick)(/*[out,retval]*/BOOL* pResult); + STDMETHOD(IsMouseMove)(/*[out,retval]*/BOOL* pResult); + short GetMessage(){ return m_message; } + short GetParam() { return m_param; } + DWORD GetLParam() { return m_lparam; } + void SetData(short message,short wParam,DWORD lParam,POINT& pt,POINT& lp); + STDMETHOD(get_time)(/*[out, retval]*/ DATE *pVal); + STDMETHOD(get_PosY)(/*[out, retval]*/ double *pVal); + STDMETHOD(get_PosX)(/*[out, retval]*/ double *pVal); + STDMETHOD(get_Parameter)(/*[out, retval]*/ short *pVal); + STDMETHOD(get_Message)(/*[out, retval]*/ short *pVal); +protected: + POINT m_ptDP; + POINT m_ptLP; + short m_message; + short m_param; + DWORD m_lparam; + double m_time; +}; + +#endif //__EVENT_H_ diff --git a/Event.rgs b/Event.rgs new file mode 100644 index 0000000..d100c24 --- /dev/null +++ b/Event.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.Event.1 = s 'Event Class' + { + CLSID = s '{6E7538A4-2A3E-4631-BB79-6A9D923DB432}' + } + SeraphyScriptTools.Event = s 'Event Class' + { + CLSID = s '{6E7538A4-2A3E-4631-BB79-6A9D923DB432}' + CurVer = s 'SeraphyScriptTools.Event.1' + } + NoRemove CLSID + { + ForceRemove {6E7538A4-2A3E-4631-BB79-6A9D923DB432} = s 'Event Class' + { + ProgID = s 'SeraphyScriptTools.Event.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Event' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/Form.cpp b/Form.cpp new file mode 100644 index 0000000..132e99f --- /dev/null +++ b/Form.cpp @@ -0,0 +1,499 @@ +// Form.cpp : CForm ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "Form.h" + +///////////////////////////////////////////////////////////////////////////// +// CForm + +STDMETHODIMP CForm::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_IForm + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +void CForm::FinalRelease() +{ + ATLTRACE("CForm::FinalRelease\r\n"); + // ‰Šú‰» + ClearControls(); + // ƒRƒ“ƒgƒ[ƒ‹”wŒiƒuƒ‰ƒV‚Ì”jŠü + if(m_hBrushControlBkColor){ + DeleteObject(m_hBrushControlBkColor); + m_hBrushControlBkColor = NULL; + } + // ƒtƒHƒ“ƒg‚Ì”jŠü + if(m_hControlFont){ + DeleteObject(m_hControlFont); + m_hControlFont = NULL; + } +} + +STDMETHODIMP CForm::get_Control(VARIANT varNum, VARIANT *pVal) +{ + ::VariantInit(pVal); + CComVariant tmp; + int nID = -1; + if(tmp.ChangeType(VT_I2,&varNum) == S_OK){ + nID = tmp.iVal; + } + if(nID > 0){ + list*>::iterator p = m_lstControl.begin(); + while(p != m_lstControl.end()){ + if((*p)->GetID() == nID){ + // “¯ˆêID‚ð”­Œ©‚µ‚½‚̂ŁA‚±‚ê‚ð•Ô‚· + IUnknown* pUnk = NULL; + if((*p)->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + break; + } + p++; + } + } + return S_OK; +} + +STDMETHODIMP CForm::SetControlFont(VARIANT fontname, VARIANT fontsize) +{ + CComVariant varName,varSize; + TCHAR szFontName[MAX_PATH] = {0}; + if(varName.ChangeType(VT_BSTR,&fontname) == S_OK){ + WideCharToMultiByte(GetACP(),0,varName.bstrVal,-1,szFontName,MAX_PATH,NULL,NULL); + } + int siz = 20; + if(varSize.ChangeType(VT_I2,&fontsize) == S_OK){ + siz = varSize.iVal; + } + // Šm•ÛÏ‚݃tƒHƒ“ƒg‚ð‰ð•ú‚·‚é + if(m_hControlFont){ + DeleteObject(m_hControlFont); + } + // V‚µ‚¢ƒtƒHƒ“ƒg‚ðì¬‚·‚é + m_hControlFont = CreateFont(siz,0,0,0,0,false,false,false,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_DONTCARE,szFontName); + m_nControlFontSize = siz; + // Œ»Ý‚̃Rƒ“ƒgƒ[ƒ‹‚·‚ׂĂɓK—p‚·‚é(¶¬‚³‚ê‚Ä‚¢‚ê‚Î) + list*>::iterator p = m_lstControl.begin(); + while(p != m_lstControl.end()){ + (*p)->SetFont(m_hControlFont); + p++; + } + return S_OK; +} + +STDMETHODIMP CForm::Label(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,SS_NOTIFY,0,"STATIC"); + return S_OK; +} + +STDMETHODIMP CForm::Button(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,WS_TABSTOP|BS_PUSHBUTTON,0,"BUTTON"); + return S_OK; +} + +STDMETHODIMP CForm::CheckBox(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,WS_TABSTOP|BS_AUTOCHECKBOX,0,"BUTTON"); + return S_OK; +} + +STDMETHODIMP CForm::RadioButton(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,BS_AUTORADIOBUTTON|(m_bControlNextIsGroupHead?WS_TABSTOP:0),0,"BUTTON"); + return S_OK; +} + +STDMETHODIMP CForm::CheckBox3state(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,WS_TABSTOP|BS_AUTO3STATE,0,"BUTTON"); + return S_OK; +} + +STDMETHODIMP CForm::PushCheckButton(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,WS_TABSTOP|BS_AUTOCHECKBOX|BS_PUSHLIKE,0,"BUTTON"); + return S_OK; +} + +STDMETHODIMP CForm::PushRadioButton(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,0,BS_AUTORADIOBUTTON|BS_PUSHLIKE|(m_bControlNextIsGroupHead?WS_TABSTOP:0),0,"BUTTON"); + return S_OK; +} + +STDMETHODIMP CForm::ReadonlyEdit(VARIANT text, VARIANT width, VARIANT height, VARIANT *punkVal) +{ + DWORD style = WS_TABSTOP | ES_READONLY; + if(height.vt != VT_ERROR && height.vt != VT_NULL && height.vt != VT_EMPTY){ + // ‚‚³Žw’肪‚ ‚éê‡‚Í•¡”s + style |= ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL; + } + else{ + // ’Pˆês + style |= ES_AUTOHSCROLL; + } + CreateControlCore(text,width,height,punkVal,m_bControlUseStaticEdge?WS_EX_STATICEDGE:WS_EX_CLIENTEDGE,style,0,"EDIT"); + return S_OK; +} + +STDMETHODIMP CForm::Edit(VARIANT text, VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + DWORD style = WS_TABSTOP; + if(height.vt != VT_ERROR && height.vt != VT_NULL && height.vt != VT_EMPTY){ + // ‚‚³Žw’肪‚ ‚éê‡‚Í•¡”s + style |= ES_MULTILINE | WS_VSCROLL | ES_WANTRETURN; + } + else{ + // ’Pˆês + style |= ES_AUTOHSCROLL; + } + CreateControlCore(text,width,height,pvarUnk,WS_EX_CLIENTEDGE,style,0,"EDIT"); + return S_OK; +} + +STDMETHODIMP CForm::PasswordEdit(VARIANT text, VARIANT width, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(text,width,dmy,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|ES_PASSWORD,0,"EDIT"); + return S_OK; +} + +STDMETHODIMP CForm::ListBox(VARIANT width, VARIANT height,VARIANT* pvarUnk) +{ + CComVariant text; + CreateControlCore(text,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|LBS_NOTIFY|LBS_USETABSTOPS|LBS_NOINTEGRALHEIGHT|LBS_DISABLENOSCROLL,0,"LISTBOX"); + return S_OK; +} + +STDMETHODIMP CForm::MultiListBox(VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CComVariant text; + CreateControlCore(text,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|LBS_NOTIFY|LBS_USETABSTOPS|LBS_NOINTEGRALHEIGHT|LBS_MULTIPLESEL|/*LBS_EXTENDEDSEL|*/LBS_DISABLENOSCROLL|LBS_HASSTRINGS,0,"LISTBOX"); + return S_OK; +} + +STDMETHODIMP CForm::DropdownList(VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(dmy,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|CBS_DROPDOWNLIST|CBS_SORT,0,"COMBOBOX"); + return S_OK; +} + +STDMETHODIMP CForm::DropdownEdit(VARIANT text,VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CreateControlCore(text,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|CBS_DROPDOWN|CBS_AUTOHSCROLL|CBS_SORT,0,"COMBOBOX"); + return S_OK; +} + +STDMETHODIMP CForm::TreeView(VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(dmy,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|TVS_DISABLEDRAGDROP|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|TVS_SHOWSELALWAYS,0,WC_TREEVIEW); + return S_OK; +} + +STDMETHODIMP CForm::ListView(VARIANT colum,VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(colum,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|LVS_REPORT|LVS_SHOWSELALWAYS,0,WC_LISTVIEW); + return S_OK; +} + +STDMETHODIMP CForm::EditListView(VARIANT colum, VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(colum,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|LVS_REPORT|LVS_EDITLABELS|LVS_SHOWSELALWAYS,0,WC_LISTVIEW); + return S_OK; +} + +STDMETHODIMP CForm::CheckListView(VARIANT colum, VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CComVariant dmy; + CreateControlCore(colum,width,height,pvarUnk,WS_EX_CLIENTEDGE,WS_TABSTOP|LVS_SINGLESEL|LVS_REPORT,LVS_EX_CHECKBOXES|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT ,WC_LISTVIEW); + return S_OK; +} + +STDMETHODIMP CForm::ClearControls() +{ + // ƒRƒ“ƒgƒ[ƒ‹‚ð‚·‚×‚Ä”jŠü‚·‚é + list*>::iterator p = m_lstControl.begin(); + while(p != m_lstControl.end()){ + (*p)->Destroy(); // ƒEƒBƒ“ƒhƒE‚ð”jŠü‚µŽQÆ‚ªŽc‚Á‚Ä‚àƒAƒNƒZƒX•s‰Â‚É‚·‚é + (*p)->Release(); + p = m_lstControl.erase(p); + } + m_nControlNextY = 0; + m_nControlNextY0 = 0; + m_nCommandID = 10; + m_nControlLeftMargin = 5; + m_nControlRightMargin = 5; + m_nControlNextX = m_nControlLeftMargin; + m_bControlNextIsGroupHead = false; + m_bControlUseStaticEdge = true; + // + // ƒRƒ“ƒgƒ[ƒ‹—pƒtƒHƒ“ƒg‚̍쐬 + if(m_hControlFont){ + DeleteObject(m_hControlFont); + } + m_nControlFontSize = 16; + m_hControlFont = CreateFont(m_nControlFontSize,0,0,0,0,false,false,false,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_DONTCARE,NULL); + return S_OK; +} + +CControl* CForm::CreateControlCore(VARIANT &text, VARIANT &width, VARIANT &height,VARIANT *pvarUnk, DWORD extstyle, DWORD style, DWORD afterstyle,LPCSTR classname) +{ + CComVariant varText; + TCHAR szCaption[MAX_PATH] = {0}; + if(varText.ChangeType(VT_BSTR,&text) == S_OK){ + WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,szCaption,MAX_PATH,NULL,NULL); + } + + // ”z’uƒTƒCƒY‚̎擾 + int nWidth = (m_nWindowWidth - m_nControlRightMargin) - m_nControlNextX; + if(nWidth <= 0){ + ControlBreak(); + nWidth = (m_nWindowWidth - m_nControlRightMargin) - m_nControlNextX; + } + CComVariant varWidth; + if(varWidth.ChangeType(VT_I2,&width) == S_OK){ + nWidth = varWidth.iVal * m_nControlFontSize; + if(nWidth + m_nControlNextX > m_nWindowWidth){ + ControlBreak(); + } + } + + int nHeight = m_nControlFontSize; + CComVariant varHeight; + if((height.vt != VT_EMPTY && height.vt != VT_ERROR && height.vt != VT_NULL) + && varHeight.ChangeType(VT_I2,&height) == S_OK){ + nHeight = varHeight.iVal * m_nControlFontSize; + } + + // ƒOƒ‹[ƒvƒwƒbƒ_ + if(m_bControlNextIsGroupHead){ + style |= WS_GROUP; + m_bControlNextIsGroupHead = false; + } + + // ƒCƒ“ƒXƒ^ƒ“ƒX‚̐¶¬ + CComObject* pControl = NULL; + HRESULT hRet = pControl->CreateInstance(&pControl); + ATLASSERT(hRet == S_OK); + + // ŽQÆƒJƒEƒ“ƒgAƒ|ƒCƒ“ƒ^‚Ì•Û‘¶ + pControl->AddRef(); + pControl->SetParam(afterstyle,extstyle,classname,szCaption,style,m_nControlNextX,m_nControlNextY,nWidth,nHeight+6,m_nCommandID); + // ƒŠƒXƒg‚É“o˜^ + m_lstControl.push_back(pControl); + + // ƒEƒBƒ“ƒhƒE‚ª¶¬Ï‚Ý‚Å‚ ‚ê‚΁A‚½‚¾‚¿‚ɐ¶¬‚ðs‚¤ + // ‚»‚¤‚Å‚È‚¯‚ê‚΃EƒBƒ“ƒhƒE¶¬Œã‚Ɏ擾 + if(m_hOwner){ + pControl->Create(m_hOwner); + pControl->SetFont(m_hControlFont); + pControl->SetColor(m_dwControlColor); + } + + // ‚±‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚ð–ß‚è’l‚Æ‚·‚é + IUnknown* pUnk = NULL; + hRet = pControl->QueryInterface(IID_IUnknown,(void**)&pUnk); + ATLASSERT(hRet == S_OK); + ::VariantInit(pvarUnk); + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + + // ŽŸ‚ɉüs‚µ‚½‚Æ‚«‚Ɉړ®‚·‚é—Ê + if(!lstrcmp(classname,"COMBOBOX")){ + // ƒRƒ“ƒ{ƒ{ƒbƒNƒX‚Í•\Ž¦‚³‚ê‚Ä‚¢‚é‚Ì‚Í1s•ª‚¾‚¯B + nHeight = m_nControlFontSize; + } + int ny = m_nControlNextY + nHeight + 7; + if(m_nControlNextY0 < ny){ + m_nControlNextY0 = ny; + } + // ¶•ûŒü‚Ö‰üs‚·‚é + m_nControlNextX += nWidth + 2; + if(m_nControlNextX >= m_nWindowWidth){ + // ƒI[ƒo[‚µ‚½‚çÜ‚è•Ô‚·B + ControlBreak(); + } + m_nCommandID++; + return pControl; +} + +STDMETHODIMP CForm::get_LeftMargin(short *pVal) +{ + *pVal = m_nControlLeftMargin; + return S_OK; +} + +STDMETHODIMP CForm::put_LeftMargin(short newVal) +{ + m_nControlLeftMargin = newVal; + return S_OK; +} + +STDMETHODIMP CForm::ControlBreak() +{ + m_nControlNextX = m_nControlLeftMargin; + m_nControlNextY = m_nControlNextY0; + return S_OK; +} + +STDMETHODIMP CForm::ControlGroup() +{ + m_bControlNextIsGroupHead = true; + return S_OK; +} + +STDMETHODIMP CForm::ControlPad(VARIANT width, VARIANT height) +{ + // ‹ó”’‚ð‚‚­‚é + CComVariant varWidth,varHeight; + if(varHeight.ChangeType(VT_I2,&height) == S_OK){ + ControlBreak(); + m_nControlNextY += varHeight.iVal; + } + if(varWidth.ChangeType(VT_I2,&width) == S_OK){ + m_nControlNextX += varWidth.iVal; + } + return S_OK; +} + + +STDMETHODIMP CForm::StatusLabel(VARIANT text, VARIANT width, VARIANT height, VARIANT *pvarUnk) +{ + CreateControlCore(text,width,height,pvarUnk,m_bControlUseStaticEdge?WS_EX_STATICEDGE:WS_EX_CLIENTEDGE,SS_NOTIFY,0,"STATIC"); + return S_OK; +} + +STDMETHODIMP CForm::ControlUseStaticEdge(VARIANT mode) +{ + int nMode = true; + CComVariant varMode; + if((mode.vt != VT_EMPTY && mode.vt != VT_ERROR && mode.vt != VT_NULL) + && (varMode.ChangeType(VT_I2,&mode) == S_OK)){ + nMode = varMode.iVal; + } + m_bControlUseStaticEdge = nMode; + return S_OK; +} + +void CForm::AttachOwner(HWND hOwner) +{ + m_hOwner = hOwner; + // Ž–‘Oì¬‚³‚ê‚Ä‚¢‚½ƒRƒ“ƒgƒ[ƒ‹‚ð‚·‚×‚Ä¶¬‚·‚é + list*>::iterator p = m_lstControl.begin(); + while(p != m_lstControl.end()){ + (*p)->Create(hOwner); + (*p)->SetFont(m_hControlFont); + (*p)->SetColor(m_dwControlColor); + p++; + } +} + +void CForm::DetachOwner() +{ + // ‚·‚ׂẴRƒ“ƒgƒ[ƒ‹‚ð”jŠü‚·‚é + ClearControls(); + // ƒI[ƒi[‚𖳌ø‚É‚·‚é + m_hOwner = NULL; +} + +void CForm::SetWindowSize(int width, int height,BOOL bThick) +{ + // ƒEƒBƒ“ƒhƒE‚̃TƒCƒY‚ðŽw’è‚·‚é + // ‚½‚¾‚µAŽ©“®“I‚ɍ¶‰E‚̘g•ª‚ðˆø‚­ + m_nWindowWidth = width - (GetSystemMetrics(bThick?SM_CXSIZEFRAME:SM_CXFIXEDFRAME) * 2); + m_nWindowHeight = height- (GetSystemMetrics(bThick?SM_CYSIZEFRAME:SM_CYFIXEDFRAME) * 2); +} + +STDMETHODIMP CForm::get_RightMargin(short *pVal) +{ + *pVal = m_nControlRightMargin; + return S_OK; +} + +STDMETHODIMP CForm::put_RightMargin(short newVal) +{ + m_nControlRightMargin = newVal; + return S_OK; +} + +void CForm::EnableAllControl(BOOL mode) +{ + // ‘SƒRƒ“ƒgƒ[ƒ‹‚̃Cƒl[ƒuƒ‹EƒfƒBƒZ[ƒuƒ‹‚ÌØ‘Ö + if(!::IsWindow(m_hOwner)){ + // ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚Ή½‚à‚µ‚È‚¢ + return; + } + list*>::iterator p = m_lstControl.begin(); + while(p != m_lstControl.end()){ + (*p)->put_Enable(mode); + p++; + } +} + +STDMETHODIMP CForm::get_ControlColor(long *pVal) +{ + *pVal = (long)m_dwControlColor; + return S_OK; +} + +STDMETHODIMP CForm::put_ControlColor(long newVal) +{ + if(m_hBrushControlBkColor){ + DeleteObject(m_hBrushControlBkColor); + } + m_hBrushControlBkColor = CreateSolidBrush(m_dwControlColor); + m_dwControlColor = newVal; + return S_OK; +} + +DWORD CForm::GetControlColor() +{ + return m_dwControlColor; +} + +HBRUSH CForm::GetControlColorBrush() +{ + return m_hBrushControlBkColor; +} + +BOOL CForm::FindControlEventName(int eventcode, BSTR *pEventName) +{ + // pEventName‚͏‰Šú‰»‚³‚ê‚Ä‚¢‚È‚¢BSTR‚ւ̃|ƒCƒ“ƒ^‚ð“n‚· + // ŒÄ‚яo‚µŒ³‚Ítrue‚ª‹A‚Á‚½‚çA‚±‚ÌBSTR‚ð‰ð•ú‚·‚é•K—v‚ª‚ ‚é + list*>::iterator p = m_lstControl.begin(); + while(p != m_lstControl.end()){ + if((*p)->GetID() == eventcode){ + (*p)->GetClassEvent(pEventName); + return true; + } + p++; + } + return false; +} + +HWND CForm::GetAttachedOwner() +{ + return m_hOwner; +} diff --git a/Form.h b/Form.h new file mode 100644 index 0000000..c9570c4 --- /dev/null +++ b/Form.h @@ -0,0 +1,113 @@ +// Form.h : CForm ‚̐錾 + +#ifndef __FORM_H_ +#define __FORM_H_ + +#include +using namespace std; + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include "control.h" + +///////////////////////////////////////////////////////////////////////////// +// CForm +class ATL_NO_VTABLE CForm : + public CComObjectRootEx, +// public CComCoClass, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IDispatchImpl +{ +public: + CForm() + { + m_hOwner = NULL; + m_dwControlColor = ::GetSysColor(COLOR_WINDOW); + m_hBrushControlBkColor = CreateSolidBrush(m_dwControlColor); + ClearControls(); // ‰Šú‰»‚·‚é + // ƒfƒBƒtƒHƒ‹ƒg‚̃EƒBƒ“ƒhƒE‚̃TƒCƒY + m_nWindowWidth = 0; + m_nWindowHeight = 0; + } + void FinalRelease(); + +//DECLARE_REGISTRY_RESOURCEID(IDR_FORM) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CForm) + COM_INTERFACE_ENTRY(IForm) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) +END_COM_MAP() +BEGIN_CONNECTION_POINT_MAP(CForm) +END_CONNECTION_POINT_MAP() + + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// IForm +public: + HWND GetAttachedOwner(); + BOOL FindControlEventName(int eventcode,BSTR* pEventName); + HBRUSH GetControlColorBrush(); + DWORD GetControlColor(); + STDMETHOD(get_ControlColor)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_ControlColor)(/*[in]*/ long newVal); + STDMETHOD(CheckListView)(/*[in,optional]*/VARIANT colum,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(EditListView)(/*[in,optional]*/VARIANT colum,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(ListView)(/*[in,optional]*/VARIANT colum,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(TreeView)(/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(DropdownEdit)(/*[in,optional]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(DropdownList)(/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(MultiListBox)(/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(ListBox)(/*[in,optional]*/VARIANT width,/*[in,optinal]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + void EnableAllControl(BOOL mode); + STDMETHOD(get_RightMargin)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_RightMargin)(/*[in]*/ short newVal); + void SetWindowSize(int width,int height,BOOL bThick); + void DetachOwner(); + void AttachOwner(HWND hOwner); + STDMETHOD(get_Control)(/*[in]*/VARIANT varNum, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(SetControlFont)(/*[in]*/VARIANT fontname,/*[in]*/VARIANT fontsize); + STDMETHOD(ControlUseStaticEdge)(/*[in]*/VARIANT mode); + STDMETHOD(StatusLabel)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(PushRadioButton)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(PushCheckButton)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(CheckBox3state)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(ReadonlyEdit)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* punkVal); + STDMETHOD(PasswordEdit)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(ControlPad)(/*[in]*/VARIANT width,/*[in,optional]*/VARIANT height); + STDMETHOD(RadioButton)(/*[in]*/VARIANT text,/*[in]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(ControlGroup)(); + STDMETHOD(ControlBreak)(); + STDMETHOD(get_LeftMargin)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_LeftMargin)(/*[in]*/ short newVal); + STDMETHOD(ClearControls)(); + STDMETHOD(Edit)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[in,optional]*/VARIANT height,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(CheckBox)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(Button)(/*[in]*/VARIANT text,/*[in]*/VARIANT width,/*[out,retval]*/ VARIANT *pvarUnk); + STDMETHOD(Label)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT width,/*[out,retval]*/VARIANT* pvarUnk); +protected: + CControl* CreateControlCore(VARIANT& text,VARIANT& width,VARIANT& height,VARIANT* pvarUnk,DWORD extstyle,DWORD style,DWORD afterstyle,LPCSTR classname); + list*> m_lstControl; + BOOL m_bControlUseStaticEdge; + BOOL m_bControlNextIsGroupHead; + int m_nCommandID; + int m_nControlNextY; + int m_nControlFontSize; + int m_nControlNextX; + int m_nControlLeftMargin; + int m_nControlRightMargin; + HFONT m_hControlFont; + int m_nControlNextY0; + HWND m_hOwner; + int m_nWindowWidth; + int m_nWindowHeight; + DWORD m_dwControlColor; + HBRUSH m_hBrushControlBkColor; +}; + +#endif //__FORM_H_ diff --git a/Form.rgs b/Form.rgs new file mode 100644 index 0000000..23cd161 --- /dev/null +++ b/Form.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.Form.1 = s 'SeraphyScriptTools.Form Class' + { + CLSID = s '{5869FF04-ED73-4EEC-BC48-29AADF4EFE61}' + } + SeraphyScriptTools.Form = s 'SeraphyScriptTools.Form Class' + { + CLSID = s '{5869FF04-ED73-4EEC-BC48-29AADF4EFE61}' + CurVer = s 'SeraphyScriptTools.Form.1' + } + NoRemove CLSID + { + ForceRemove {5869FF04-ED73-4EEC-BC48-29AADF4EFE61} = s 'SeraphyScriptTools.Form Class' + { + ProgID = s 'SeraphyScriptTools.Form.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Form' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/Help/canvas.htm b/Help/canvas.htm new file mode 100644 index 0000000..52c3cbc --- /dev/null +++ b/Help/canvas.htm @@ -0,0 +1,154 @@ + + + + + + + +Canvas ƒLƒƒƒ“ƒoƒX + + + + + + +

Canvas@ƒLƒƒƒ“ƒoƒX

+
+

+

•`‰æ‚·‚邽‚߂̃ŒƒCƒ„[‚ðŠÇ—‚µ‚Ä‚¢‚Ü‚·B

+

+

‡@@’¼Ú¶¬‚·‚é•û–@

+

@ƒIƒuƒWƒFƒNƒg‚𒼐ڐ¶¬‚Å‚«‚Ü‚·B
+@‚½‚¾‚µA‚±‚̏ꍇ‚̓EƒBƒ“ƒhƒE‚Æ‚ÌŠÖ˜A«‚ª‚È‚¢‚½‚߁Aˆóü‚̂݉”\‚Å‚·B

+

@dim obj
+@set obj = CreateObject("SeraphyScriptTools.Canvas")

+

@ProgID‚́uSeraphyScriptTools.Canvasv‚Å‚·B

+

‡A@OverlappedWindow‚©‚ç

+@OverlappedWindow‚ÌCanvasƒvƒƒpƒeƒB‚©‚çƒAƒNƒZƒX‚µ‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚Æ‚ÌŠÖ˜A«‚ª‚ ‚èAƒEƒBƒ“ƒhƒE‚ɑ΂µ‚Ä•`‰æ‚ª‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B +

@

+

+

Layer ( x )

+

CanvasƒIƒuƒWƒFƒNƒg‚ª“à•”‚ŏŠ—L‚µ‚Ä‚¢‚郌ƒCƒ„[ƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+ƒŒƒCƒ„[‚Í0`255‚Ü‚Å‚ ‚è‚Ü‚·B
+ƒŒƒCƒ„[”ԍ†‚ª‘å‚«‚¢‚Ù‚ÇŽè‘O‚É•\Ž¦‚³‚ê‚Ü‚·B

+

@

+

MarginWidth
+MarginHeight

+

ˆóü”͈̗͂]”’‚ðŽw’肵‚Ü‚·B
+HeightƒvƒƒpƒeƒB‚ÅŽw’肳‚ê‚é—]”’‚́Aƒ}ƒbƒsƒ“ƒOƒ‚[ƒh‚ª0‚Ȃ牺•û‚ɁA1‚È‚çã•û‚ɂ‚¯‚ç‚ê‚Ü‚·B

+

+

Print

+

ˆÈ‘O‚ÉŽg‚Á‚½ƒvƒŠƒ“ƒ^‚ª‚ ‚ê‚΁A‚»‚̃vƒŠƒ“ƒ^‚Ɛݒè‚ōēxˆóü‚µ‚Ü‚·B
+ˆóü‚µ‚½‚±‚Æ‚ª‚È‚¯‚ê‚΃vƒŠƒ“ƒ^‘I‘ðƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B

+

name PrintAs [mode]

+

•K‚¸ƒvƒŠƒ“ƒ^‘I‘ðƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ä‚©‚çˆóü‚µ‚Ü‚·B
+mode‚ðfalse‚É‚·‚é‚ƁAˆóü‚͍s‚¢‚Ü‚¹‚ñB
+‘I‘ð‚³‚ê‚½ƒvƒŠƒ“ƒ^–¼‚ª•Ô‚³‚ê‚Ü‚·B

+

GetPrinterDefault [name]

+

ƒfƒBƒtƒHƒ‹ƒg‚̃vƒŠƒ“ƒg‚̐ݒè‚ðŽæ‚荞‚Ý‚Ü‚·B
+name‚ðŽw’è‚·‚é‚ƁAŽw’肳‚ꂽƒvƒŠƒ“ƒ^–¼‚©‚çÝ’è‚ðŽæ‚荞‚Ý‚Ü‚·B

+

obj LoadPicture path

+

ƒsƒNƒ`ƒƒ[‚ðƒ[ƒh‚µAƒsƒNƒ`ƒƒ[ƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+Win32API‚ÌOleLoadPicturePathŠÖ”‚œǂݍž‚Ü‚¹‚Ä‚¢‚é‚̂ŁABMPAJPEGAGIF‚ª“ǂݍž‚݉”\‚Å‚·B
+ƒIƒuƒWƒFƒNƒg‚́AIPictureƒCƒ“ƒ^[ƒtƒFƒCƒX‚Å‚·B
+‚µ‚½‚ª‚Á‚āAIPictureDispƒCƒ“ƒ^[ƒtƒFƒCƒX‚̃vƒƒpƒeƒB‚È‚Ç‚ªŽg‚¦‚Ü‚·B

+

@

+

£

+

@

+
+

ƒŒƒCƒ„[ƒIƒuƒWƒFƒNƒg

+
+

+

ƒŒƒCƒ„[‚Í0`255‚Ü‚Å‚ ‚èA255‚ª‚à‚Á‚Æ‚àã‚É•\Ž¦‚³‚ê‚Ü‚·B
+ŠeƒŒƒCƒ„[‚́A—ÖŠsFA“h‚è‚‚ԂµFAƒeƒLƒXƒgF‚Ì3‚‚̃Jƒ‰[‚ªŽw’è‚Å‚«‚Ü‚·B
+ƒtƒHƒ“ƒgƒTƒCƒYAƒtƒHƒ“ƒg‚àƒŒƒCƒ„[‚²‚Æ‚ÌŽw’è‚Æ‚È‚è‚Ü‚·B

+

•¡”‚̐F‚ðŽg‚¤ê‡‚ɂ́A•¡”‚̃ŒƒCƒ„[‚ðŽg‚í‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

+

@

+

+

CanvasƒIƒuƒWƒFƒNƒg‚ÌLayerƒvƒƒpƒeƒB‚©‚ç‚̂݃AƒNƒZƒX‚Å‚«‚Ü‚·B

+

@

+

+

Color ƒvƒƒpƒeƒB

+

ƒŒƒCƒ„[‚Ì•`‰æF‚ðŽw’肵‚Ü‚·B

+

FillColor ƒvƒƒpƒeƒB

+

ƒŒƒCƒ„[‚Ì“h‚è‚‚ԂµF‚ðŽw’肵‚Ü‚·

+

FontColor ƒvƒƒpƒeƒB

+

ƒŒƒCƒ„[‚Å•\Ž¦‚·‚éƒeƒLƒXƒg‚̐F‚ðŽw’肵‚Ü‚·B

+

FontName@ƒvƒƒpƒeƒB

+

ƒŒƒCƒ„[‚Å•\Ž¦‚·‚éƒeƒLƒXƒg‚̃tƒHƒ“ƒg–¼‚ðŽw’肵‚Ü‚·B

+

FontSize ƒvƒƒpƒeƒB

+

ƒŒƒCƒ„[‚Å•\Ž¦‚·‚éƒeƒLƒXƒg‚̃TƒCƒY‚ðŽw’肵‚Ü‚·B
+

+

Visible ƒvƒƒpƒeƒB

+

ƒŒƒCƒ„[‚ð•`‰æ‚·‚é‚©”Û‚©Žw’肵‚Ü‚·B

+

£

+

+

Clear ƒƒ\ƒbƒh

+

‚·‚ׂĂ̕`‰æ‚ðƒNƒŠƒA‚µ‚Ü‚·

+

Line sx,sy,ex,ey

+

’¼ü‚ð•`‰æ‚µ‚Ü‚·

+

Box sx,sy,ex,ey
+FillBox sx,sy,ex,ey

+

” ‚ð•`‰æ‚µ‚Ü‚·B
+Fill‚Í“h‚è‚‚Ԃµ‚Å‚·B

+

Arc x1,y1,x2,y2,sx,sy,ex,ey
+FillArc x1,y1,x2,y2,sx,sy,ex,ey

+

‰~ŒÊ‚ð•`‰æ‚µ‚Ü‚·B
+(x1,y1)-(x2,y2)‚ň͂܂ê‚é’·•ûŒ`‚Ì’†‚́A“_(sx,sy)•ûŒü‚©‚çA“_(ex,ey)•ûŒü‚܂ł̉~ŒÊ‚ð•`‰æ‚µ‚Ü‚·B
+Fill‚Í“h‚è‚‚Ԃµ‚Å‚·B

+

Circle x,y,r
+FillCircle x,y,r

+

‰~‚ð•`‰æ‚µ‚Ü‚·B

+

Text x,y,text

+

Žw’肵‚½ˆÊ’u‚©‚çŽn‚Ü‚éƒeƒLƒXƒg‚ð•`‰æ‚µ‚Ü‚·

+

TextBox sz,sy,ex,ey,text,fmt

+

(sx,sy)-(ex,ey)‚ÅŽw’肳‚ê‚é” ‚Éfmt‚ÅŽw’肵‚½‘Ž®‚ŃeƒLƒXƒg‚ð•`‰æ‚µ‚Ü‚·B
+fmt‚ÍWin32API‚ÌDrawText‚Ìfmt‚Å‚·B

+

FillRBox sx,sy,ex,ey,w,h

+

(sx,sy)-(ex,ey)‚ÅŽw’肳‚ê‚é” ‚ÌŠp‚ªA•wA‚‚³h‚̉~ŒÊ‚Å‚Ü‚é‚ß‚ç‚ꂽ” ‚ð•`‰æ‚µ‚Ü‚·B

+

Polygon x,y,array

+

À•WX,Y‚ɁAVBS‚ÌVARIANTŒ^‚ÌSAFEARRAY“ñŽŸŒ³”z—ñ‚ÅŽw’肳‚ê‚éƒ|ƒCƒ“ƒg‚ðŒ‹‚Ô‘½ŠpŒ`‚ð•`‰æ‚µ‚Ü‚·B
+“à•”‚Í“h‚è‚‚Ԃ³‚ê‚Ü‚·B

+

Picture obj,x,y,[width],[height]

+

ƒsƒNƒ`ƒƒ[ƒIƒuƒWƒGƒNƒg‚ÅŽw’肵‚½‰æ‘œ‚ðAÀ•WX,YˆÊ’u‚É•widthA‚‚³height‚Å•`‰æ‚µ‚Ü‚·B
+widthAheight‚ðÈ—ª‚·‚é‚©ƒ}ƒCƒiƒX‚ðŽw’è‚·‚é‚ƁA‰æ‘œ‚ÌŽÀÛ‚̃TƒCƒY‚Æ‚È‚è‚Ü‚·B

+

SetMappingMode mode

+

ƒ}ƒbƒsƒ“ƒOƒ‚[ƒh‚ð•ÏX‚µ‚Ü‚·B
+mode = 0 ŽÀ¡ƒ‚[ƒh
+mode = 1 ƒsƒNƒZƒ‹ƒ‚[ƒh
+ƒfƒBƒtƒIƒ‹ƒg‚Å‚ÍŽÀ¡ƒ‚[ƒh0.01ƒ~ƒŠ’PˆÊ‚̃}ƒbƒsƒ“ƒOƒ‚[ƒh‚ÅŒ´“_‚͍¶‰º‚Å‚·B
+ƒsƒNƒZƒ‹ƒ‚[ƒh‚̓sƒNƒZƒ‹’PˆÊ‚ÅŽw’肵‚Ü‚·BŒ´“_‚͍¶ã‚Å‚·B
+ƒ‚[ƒh‚ðØ‚è‘Ö‚¦‚āA‘o•û‚ð¬Ý‚³‚¹‚邱‚Æ‚ª‰Â”\‚Å‚·B
+‚±‚̃ƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚½ˆÈ~‚Ì•`‰æƒƒ\ƒbƒh‚ɐV‚µ‚¢ƒ}ƒbƒsƒ“ƒOƒ‚[ƒh‚ª“K—p‚³‚ê‚Ü‚·B
+ƒtƒHƒ“ƒgƒTƒCƒY‚ÌŽw’è‚ðs‚¤ê‡‚́AƒtƒHƒ“ƒgƒTƒCƒY‚ðŽw’è‚·‚鎞“_‚ł̃}ƒbƒsƒ“ƒOƒ‚[ƒh‚ª‹L‰¯‚³‚ê‚Ü‚·B

+

£

+

+ + + + diff --git a/Help/control.htm b/Help/control.htm new file mode 100644 index 0000000..c68e512 --- /dev/null +++ b/Help/control.htm @@ -0,0 +1,163 @@ + + + + + + + +Control + + + + + +

ƒRƒ“ƒgƒ[ƒ‹ ƒIƒuƒWƒFƒNƒg

+
+

+

ƒRƒ“ƒgƒ[ƒ‹ƒIƒuƒWƒFƒNƒg‚́A‚·‚ׂĂ̎í—ނ̃Rƒ“ƒgƒ[ƒ‹‚É‹¤’Ê‚·‚éƒIƒuƒWƒFƒNƒg‚Å‚·B

+

ƒƒ\ƒbƒh‚âƒvƒƒpƒeƒB[‚É‚æ‚Á‚ẮA“Á’è‚̃Rƒ“ƒgƒ[ƒ‹‚É‚µ‚©ì—p‚µ‚È‚¢‚à‚Ì‚ª‚ ‚è‚Ü‚·B

+


+

+

TextƒvƒƒpƒeƒB

+

ƒ‰ƒxƒ‹‚âƒ{ƒ^ƒ“‚̃LƒƒƒvƒVƒ‡ƒ“‚ð•ÏX‚µ‚Ü‚·B
+ƒGƒfƒCƒbƒgƒ{ƒbƒNƒXAƒhƒƒbƒuƒ_ƒEƒ“ƒGƒfƒCƒbƒg‚͕ҏW€–Ú‚ðŽ¦‚µ‚Ü‚·B
+ƒcƒŠ[ƒrƒ…[AƒŠƒXƒgƒrƒ…[AƒŠƒXƒgAƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚ł̓Tƒ|[ƒg‚³‚ê‚Ü‚¹‚ñB

+

IDƒvƒƒpƒeƒB

+

‚·‚ׂẴRƒ“ƒgƒ[ƒ‹‚É‹¤’Ê‚µ‚Ü‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ÌID‚ðŽæ“¾E•ÏX‚Å‚«‚Ü‚·B
+ID‚̓NƒŠƒbƒN‚µ‚½‚Æ‚«‚È‚Ç‚É”­¶‚·‚éƒCƒxƒ“ƒg‚ŁA‚ǂ̃Rƒ“ƒgƒ[ƒ‹‚©‚ç‚Ì‚à‚Ì‚©Ž¯•Ê‚·‚邽‚ß‚ÉŽg‚í‚ê‚Ü‚·B

+

Visiblity ƒvƒƒpƒeƒB

+

ƒRƒ“ƒgƒ[ƒ‹‚̉Ž‹E•s‰ÂŽ‹‚ðØ‚è‘Ö‚¦‚Ü‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ªŽÀ‘Ì‚ð‚à‚Á‚Ä‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

+

Enable@ƒvƒƒpƒeƒB

+

ƒRƒ“ƒgƒ[ƒ‹‚Ì—LŒøE–³Œø‚ðØ‚è‘Ö‚¦‚Ü‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ªŽÀ‘Ì‚ð‚à‚Á‚Ä‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+ƒEƒBƒ“ƒhƒE‚ÌEnable‘€ì‚ŁA‚±‚Ì‘€ì‚̓I[ƒo[ƒ‰ƒCƒh‚³‚ê‚Ü‚·B

+

CheckStateƒvƒƒpƒeƒB

+

ƒ`ƒFƒbƒNƒ{ƒ^ƒ“Aƒ‰ƒaƒIƒ{ƒ^ƒ“‚Ì‚Ý—LŒø‚Å‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ª¶¬‘OE¶¬Œã‚Ç‚¿‚ç‚Å‚àÝ’è‚Å‚«‚Ü‚·B

+

Width@ƒvƒƒpƒeƒB
+HeightƒvƒƒpƒeƒB

+

ƒRƒ“ƒgƒ[ƒ‹‚Ì•E‚‚³‚ðŽw’肵‚Ü‚·B
+‚·‚ׂẴRƒ“ƒgƒ[ƒ‹‚É‹¤’Ê‚µ‚Ü‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ª¶¬‘OE¶¬Œã‚Ç‚¿‚ç‚Å‚àÝ’è‚Å‚«‚Ü‚·B
+ƒsƒNƒZƒ‹’PˆÊ‚ÅŽw’肵‚Ü‚·B

+

PosXƒvƒƒpƒeƒB
+PosYƒvƒƒpƒeƒB

+

ƒRƒ“ƒgƒ[ƒ‹‚̐…•½E‚’¼À•W‚ðŽw’肵‚Ü‚·B
+‚·‚ׂẴRƒ“ƒgƒ[ƒ‹‚É‹¤’Ê‚µ‚Ü‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ª¶¬‘OE¶¬Œã‚Ç‚¿‚ç‚Å‚àÝ’è‚Å‚«‚Ü‚·B
+ƒsƒNƒZƒ‹’PˆÊ‚ÅŽw’肵‚Ü‚·B

+

StyleƒvƒƒpƒeƒB
+ExstyleƒvƒƒpƒeƒB

+

ƒRƒ“ƒgƒ[ƒ‹‚̃Xƒ^ƒCƒ‹‚ðÝ’èEŽæ“¾‚Å‚«‚Ü‚·B
+’ʏíŽg‚¢‚Ü‚¹‚ñB

+

ClassnameƒvƒƒpƒeƒB

+

ƒRƒ“ƒgƒ[ƒ‹‚ÌŽí—Þ‚ðŽ¯•Ê‚·‚镶Žš—ñ‚ðŽæ“¾‚Å‚«‚Ü‚·B

+

HWND ƒvƒƒpƒeƒB

+

HWND‚ðŽæ“¾‚Å‚«‚Ü‚·B’ʏíŽg‚¢‚Ü‚¹‚ñB

+

CurrentSelectItemƒvƒƒpƒeƒB

+

ƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒgAƒhƒƒbƒvƒ_ƒEƒ“ƒGƒfƒCƒbƒgAƒŠƒXƒgAƒŠƒXƒgƒrƒ…[AƒcƒŠƒrƒ…[‚Å‘I‘𒆂̃AƒCƒeƒ€‚ðŽæ“¾‚µ‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+ƒcƒŠ[ƒrƒ…[‚͍€–ÚƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+ƒcƒŠ[ƒrƒ…[‚͐ݒ肷‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+‚»‚êˆÈŠO‚͐”’l‚ð•Ô‚µ‚Ü‚·B

+

BOOL ItemSelectState (index) ƒvƒƒpƒeƒB

+

ƒhƒƒbƒuƒ_ƒEƒ“ƒŠƒXƒgAƒŠƒXƒgAƒŠƒXƒgƒrƒ…[‚ÌŽw’荀–Ú‚ª‘I‘ð‚³‚ê‚Ä‚¢‚é‚©•Ô‚µ‚½‚èAÝ’è‚Å‚«‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

SelectedCountƒvƒƒpƒeƒB

+

‘I‘ð‚³‚ê‚Ä‚¢‚éƒAƒCƒeƒ€”‚ð•Ô‚µ‚Ü‚·B
+ƒŠƒXƒgAƒŠƒXƒgƒrƒ…[‚Ì‚Ý—LŒø‚Å‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

TreeRootƒvƒƒpƒeƒB

+

ƒcƒŠ[ƒrƒ…[‚Ì‚Ý—LŒø‚Å‚·B
+ƒcƒŠ[ƒrƒ…[‚̃‹[ƒgƒAƒCƒeƒ€‚ðŽ¦‚·ƒIƒuƒWƒGƒNƒg‚ð•Ô‚µ‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

ItemObject(index)ƒvƒƒpƒeƒB

+

ƒŠƒXƒgAƒŠƒXƒgƒrƒ…[‚Ì‚Ý—LŒø‚Å‚·B
+ƒAƒCƒeƒ€‚²‚Æ‚ÉŠÖ˜A•t‚¯‚ç‚ꂽ˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ª•Ô‚³‚ê‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

+

DeleteAllItems

+

‚·‚ׂẴAƒCƒeƒ€‚ðÁ‹Ž‚µ‚Ü‚·B
+AƒŠ[ƒhƒIƒ“ƒŠ[AƒGƒfƒCƒbƒgƒ{ƒbƒNƒX‚Í“à—e‚ªƒNƒŠƒA‚³‚ê‚Ü‚·B
+ƒŠƒXƒgAƒŠƒXƒgƒrƒ…[AƒcƒŠ[ƒrƒ…[‚Í‘S€–Ú‚ªƒŠƒZƒbƒg‚³‚ê‚Ü‚·B
+ƒAƒCƒeƒ€‚ÉŠÖ˜A‚¯‚ç‚ê‚Ä‚¢‚½˜A‘z”z—ñ‚àÁŽ¸‚µ‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

ItemCheck(index)

+

ƒ`ƒFƒbƒNƒ{ƒ^ƒ“‚‚«ƒŠƒXƒgƒrƒ…[‚Ì‚Ý—LŒø‚Ä‚·B
+Žw’肵‚½€–ڂ̃`ƒFƒbƒNó‘Ô‚ðŽæ“¾‚µ‚½‚èÝ’肵‚½‚è‚Å‚«‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+
+

+

—ñ‹“ƒvƒƒpƒeƒB

+

For Each@...@Next +ƒXƒe[ƒgƒƒ“ƒg‚Å—ñ‹“‚·‚邽‚߂̃vƒƒpƒeƒB‚Å‚·B
+ƒŠƒXƒgAƒŠƒXƒgƒrƒ…[AƒŠƒXƒg‚ÌŒ»Ý‘I‘ð‚³‚ê‚Ä‚¢‚éƒAƒCƒeƒ€”ԍ†‚ª—ñ‹“‚³‚ê‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

Refresh

+

ƒRƒ“ƒgƒ[ƒ‹‚ðÄ•\Ž¦‚µ‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+’ʏí‚ÍŽg‚¢‚Ü‚¹‚ñB

+

unk SetPlacement [x],[y] ,[width],[height]

+

ƒRƒ“ƒgƒ[ƒ‹‚̍À•WA•E‚‚³‚ðŽw’肵‚Ü‚·B
+ƒEƒCƒ“ƒhƒE‚̍쐬‘OEì¬Œã‚ð–â‚킸AÝ’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+‚±‚̃ƒ\ƒbƒh‚̓Rƒ“ƒgƒ[ƒ‹Ž©g‚ð‚©‚¦‚·‚½‚߁A‚‚¯‚ăƒ\ƒbƒh‚ðŒÄ‚яo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

unk SetCheck

+

ƒ`ƒFƒbƒNƒ{ƒbƒNƒXAƒ‰ƒWƒIƒ{ƒ^ƒ“‚̏ó‘Ô‚ð‰ŠúÝ’肵‚Ü‚·B
+ƒEƒCƒ“ƒhƒE‚̍쐬‘OEì¬Œã‚ð–â‚킸AÝ’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+‚±‚̃ƒ\ƒbƒh‚̓Rƒ“ƒgƒ[ƒ‹Ž©g‚ð‚©‚¦‚·‚½‚߁A‚‚¯‚ăƒ\ƒbƒh‚ðŒÄ‚яo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

unk SetID ( id )

+

ƒRƒ“ƒgƒ[ƒ‹‚ÌID”ԍ†‚ðÝ’è‚Å‚«‚Ü‚·B
+ƒEƒCƒ“ƒhƒE‚̍쐬‘OEì¬Œã‚ð–â‚킸AÝ’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+‚±‚̃ƒ\ƒbƒh‚̓Rƒ“ƒgƒ[ƒ‹Ž©g‚ð‚©‚¦‚·‚½‚߁A‚‚¯‚ăƒ\ƒbƒh‚ðŒÄ‚яo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

AddString text

+

ƒŠƒXƒgAƒhƒƒbƒuƒ_ƒEƒ“ƒŠƒXƒgAƒhƒƒbƒvƒ_ƒEƒ“ƒGƒfƒCƒbƒgAƒŠƒXƒgƒrƒ…[‚ɐV‹K‚ɍ€–Ú‚ð’ljÁ‚µ‚Ü‚·B

+

SetColumnText index,colm,text
+text GetColumnText index,colm

+

ƒŠƒXƒgƒrƒ…[‚Ì‚Ý—LŒø‚Å‚·B
+Žw’肵‚½ƒAƒCƒeƒ€‚ÌŽw’èƒTƒuƒAƒCƒeƒ€‚̃eƒLƒXƒg‚ðÝ’肵‚½‚èAŽæ“¾‚µ‚½‚肵‚Ü‚·B

+

GetCount

+

ƒŠƒXƒgƒrƒ…[AƒŠƒXƒgAƒcƒŠ[ƒrƒ…[‚Ì‚Ý—LŒø‚Å‚·B
+ƒAƒCƒeƒ€‚̌”‚ð•Ô‚µ‚Ü‚·B

+

ItemText (x) ƒvƒƒpƒeƒB

+

X‚ÅŽw’肵‚½”ԍ†‚̃AƒCƒeƒ€‚̃eƒLƒXƒg‚ðŽæ“¾EÝ’肵‚Ü‚·
+ƒŠƒXƒgAƒŠƒXƒgƒrƒ…[‚Ì‚Ý—˜—p‰Â”\‚Å‚·B

+

DeleteSelectedItem@ƒƒ\ƒbƒh

+

‘I‘ðó‘Ô‚É‚ ‚éƒAƒCƒeƒ€‚ðíœ‚µ‚Ü‚·B
+ƒŠƒXƒgAƒŠƒXƒgƒrƒ…[‚Ì‚Ý—˜—p‰Â”\‚Å‚·B

+

@

+ + + + diff --git a/Help/dialog.htm b/Help/dialog.htm new file mode 100644 index 0000000..0f73ef6 --- /dev/null +++ b/Help/dialog.htm @@ -0,0 +1,278 @@ + + + +Dialog + + + + + + + + + +

CommDialog +ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒO

+
+

+

@‚±‚̃IƒuƒWƒFƒNƒg‚́A +uƒtƒ@ƒCƒ‹‚ðŠJ‚­vu–¼‘O‚ð‚‚¯‚Ä•Û‘¶vuƒtƒHƒ‹ƒ_‚ÌŽQÆv‚Ȃǂ̃_ƒCƒAƒƒO‚ð•\Ž¦‚·‚邽‚߂̃IƒuƒWƒFƒNƒg‚Å‚·B

+

@ŽŸ‚ÌŽí—Þ‚Ì‚à‚Ì‚ª‚ ‚è‚Ü‚·B

+ +

@

+

+

‡@@’¼Ú¶¬‚·‚é•û–@

+

VBScript‚̏ꍇ

+

Dim Instance
+Set Instance = WScript.CreateObject( "SeraphyScriptTools.CommDialog")

+

"SeraphyScriptTools.CommDialog"‚Æ‚¢‚¤ProgID‚Å‚·B
+

+

‡A@InstanceƒIƒuƒWƒFƒNƒg‚ÌDialogƒvƒƒpƒeƒB‚ð—˜—p‚·‚é•û–@

+

@InstanceƒIƒuƒWƒFƒNƒg‚ɂ́A‚·‚łɁA‚±‚̃IƒuƒWƒFƒNƒg‚ª¶¬Ï‚݂сƒCƒ“ƒEƒBƒ“ƒhƒE‚ÉŠÖ˜A‚¯‚ç‚ê‚Ä‚¢‚Ü‚·B
+@’ʏí‚ÍInstanceƒIƒuƒWƒFƒNƒg‚©‚ç—˜—p‚·‚é‚Æ•Ö—˜‚Å‚·B
+

+

@

+

ƒtƒ@ƒCƒ‹‚ðŠJ‚­

+

uƒtƒ@ƒCƒ‹‚ðŠJ‚­v ƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·B

+

+

 ƒVƒ“ƒOƒ‹

+

returnvalue OpenFileDialog [PathName] , [Filter]

+

@OpenFileDialogƒƒ\ƒbƒh‚́uƒtƒ@ƒCƒ‹‚ðŠJ‚­vƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·B
+@‘I‘ð‚³‚ê‚½ƒtƒ@ƒCƒ‹–¼‚ª•Ô‚³‚ê‚Ü‚·B
+@ƒLƒƒƒ“ƒZƒ‹‚µ‚½ê‡‚̓kƒ‹‚ª•Ô‚è‚Ü‚·B
+@ƒpƒ‰ƒ[ƒ^[‚́A‚¢‚¸‚ê‚àÈ—ª‰Â”\‚Å‚·B

+

@PathName‚͏‰Šúó‘Ô‚Å•\Ž¦‚³‚ê‚éƒtƒ@ƒCƒ‹–¼‚Å‚·B
+@Filter‚̓tƒBƒ‹ƒ^ƒŠƒ“ƒO‚·‚é‚à‚̂ŁA‚‚¬‚̂悤‚ȏ‘Ž®‚ð‚à‚¿‚Ü‚·B

+

@•\Ž¦–¼ | ƒƒCƒ‹ƒhƒJ[ƒh | •\Ž¦–¼ | +ƒƒCƒ‹ƒhƒJ[ƒh@c

+

@ƒtƒBƒ‹ƒ^ƒŠƒ“ƒO•¶Žš‚̓_ƒCƒAƒƒNƒ{ƒbƒNƒXã‚É•\Ž¦‚³‚ê‚éu•\Ž¦–¼v‚ƁAŽÀÛ‚Ƀtƒ@ƒCƒ‹‚ðƒtƒBƒ‹ƒ^ƒŠƒ“ƒO‚·‚郏ƒCƒ‹ƒhƒJ[ƒh‚É‚æ‚éƒtƒBƒ‹ƒ^‚ðu +| v‚Å‹æØ‚è‚Ü‚·B

+

@—á)@"ƒeƒLƒXƒgƒtƒ@ƒCƒ‹(*.TXT)|*.TXT|‚·‚ׂẴtƒ@ƒCƒ‹|*.*"

+

 ƒ}ƒ‹ƒ`

+

returnvalue MultiOpenFileDialog [PathName] , [Filter]

+

@MultiOpenFileDialogƒƒ\ƒbƒh‚́uƒtƒ@ƒCƒ‹‚ðŠJ‚­vƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·B
+@•¡”‚̃tƒ@ƒCƒ‹‚ð‘I‘ð‚·‚é‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+@–ß‚è’l‚ÍVariant”z—ñ‚ª•Ô‚³‚ê‚Ü‚·B
+@ƒLƒƒƒ“ƒZƒ‹‚µ‚½ê‡‚̓kƒ‹‚ª•Ô‚³‚ê‚Ü‚·B
+@Žó‚¯‚ç‚ê‚éƒtƒ@ƒCƒ‹–¼‚̍‡Œv’·‚Í8KByte’ö“x‚Ȃ̂ŁA‚ ‚Ü‚è‘òŽR‚̃tƒ@ƒCƒ‹‚Í‘I‘ð‚Å‚«‚Ü‚¹‚ñB

+

@‚»‚êˆÈŠO‚ÍOpenFileDialog‚Æ“¯‚¶‚Å‚·B

+

+

BOOL EnableCreatePrompt

+

@Truei^j‚ŁA‘¶Ý‚µ‚È‚¢ƒtƒ@ƒCƒ‹‚ðŽw’肵‚½ê‡Auƒtƒ@ƒCƒ‹‚Í‘¶Ý‚µ‚Ü‚¹‚ñBì¬‚µ‚Ü‚·‚©Hv‚Æ‚¢‚¤–â‚¢‡‚킹‚ª•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚·B
+@Falsei‹Uj‚Í‘¶Ý‚µ‚È‚¢ƒtƒ@ƒCƒ‹‚ðŽw’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBi•W€‚Ì“®ìj

+

BSTR OpenFileCaption

+

@–¾Ž¦“I‚ɃLƒƒƒvƒVƒ‡ƒ“‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@‚±‚ê‚ðŽw’肵‚È‚¢‚ƃfƒBƒtƒHƒ‹ƒg‚́uƒtƒ@ƒCƒ‹‚ðŠJ‚­v‚Æ‚¢‚¤ƒ^ƒCƒgƒ‹‚Å•\Ž¦‚³‚ê‚Ü‚·B

+

BOOL EnableReadOnly

+

@Truei^j‚ŁAu“Ç‚ÝŽæ‚èê—p‚ÅŠJ‚­v‚Æ‚¢‚¤ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ª•\Ž¦‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚·B
+@Falsei‹Uj‚̓`ƒFƒbƒNƒ{ƒbƒNƒX‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñBi•W€‚Ì“®ìj

+

@

+

BOOL ReadOnly

+

@OpenFileDialog‚ðŽÀs‚·‚é‚Ü‚¦‚ɁA‚±‚Ì’l‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@ƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚½Žž“_‚ł́u“Ç‚ÝŽæ‚èê—p‚ÅŠJ‚­v +‚̏ó‘Ô‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@‚»‚ÌŒãAƒ†[ƒU[‚ªƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ð•ÏX‚µ‚½Œ‹‰Ê‚ªA‚±‚̃vƒƒnƒeƒB‚É–ß‚³‚ê‚Ü‚·B

+

BOOL NoDereferenceLinks

+

@Truei^j‚ŁAƒVƒ‡[ƒgƒJƒbƒg‚ðŽw’肵‚½‚Æ‚«‚ɁAƒVƒ‡[ƒgƒJƒbƒgƒIƒuƒWƒFƒNƒg‚»‚Ì‚à‚Ì‚ð•Ô‚µ‚Ü‚·B
+@ Falsei‹Uj‚̓Vƒ‡[ƒgƒJƒbƒg‚̃Šƒ“ƒNæ‚ð•Ô‚µ‚Ü‚·Bi•W€‚Ì“®ìj

+

BSTR InitialDir

+

@”CˆÓ‚̃fƒBƒŒƒNƒgƒŠ‚ðƒfƒBƒtƒHƒ‹ƒg‚̃fƒBƒŒƒNƒgƒŠ‚É‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@È—ªi‹ój‚·‚é‚ÆOS‚Ɉˑ¶‚µ‚Ü‚·B
+@ +‚½‚¾‚µAƒpƒX‚ÌŽw’è‚̃tƒHƒ‹ƒ_‚ª‚ ‚ê‚΁A‚»‚ꂪ—Dæ‚³‚ê‚Ü‚·B
+@SaveFileDialog‚Æ‹¤—L‚Å‚·B

+

@

+

£

+

@

+

–¼‘O‚ð‚‚¯‚Ä•Û‘¶

+

ƒtƒ@ƒCƒ‹‚ðŠJ‚­ ƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·B

+

+

returnvalue SaveFileDialog [PathName] , [Filter]

+

@u–¼‘O‚ð‚‚¯‚Ä•Û‘¶vƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·B
+@Žw’肵‚½ƒtƒ@ƒCƒ‹–¼‚ª–ß‚è‚Ü‚·B
+@ƒLƒƒƒ“ƒZƒ‹‚µ‚½ê‡‚̓kƒ‹‚ª•Ô‚è‚Ü‚·B

+

@ƒpƒ‰ƒ[ƒ^[‚ÌŽw’è‚ÍOpenFileDialog‚Æ“¯—l‚Å‚·B

+

+

BSTR SaveFileCaption

+

@–¾Ž¦“I‚ɃLƒƒƒvƒVƒ‡ƒ“‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@‚±‚ê‚ðŽw’肵‚È‚¢‚ƃfƒBƒtƒHƒ‹ƒg‚́u–¼‘O‚ð‚‚¯‚Ä•Û‘¶v‚Æ‚¢‚¤ƒ^ƒCƒgƒ‹‚Å•\Ž¦‚³‚ê‚Ü‚·B

+

BSTR InitialDir

+

@”CˆÓ‚̃fƒBƒŒƒNƒgƒŠ‚ðƒfƒBƒtƒHƒ‹ƒg‚̃fƒBƒŒƒNƒgƒŠ‚É‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@È—ªi‹ój‚·‚é‚ÆOS‚Ɉˑ¶‚µ‚Ü‚·B
+@ +‚½‚¾‚µAƒpƒX‚ÌŽw’è‚̃tƒHƒ‹ƒ_‚ª‚ ‚ê‚΁A‚»‚ꂪ—Dæ‚³‚ê‚Ü‚·B
+@OpenFileDialog‚Æ‹¤—L‚Å‚·B

+

£

+

@

+

ƒtƒHƒ‹ƒ_‚ÌŽQÆ

+

ƒtƒHƒ‹ƒ_‘I‘ðƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·

+

+

returnvalue BrowseForFolder [Message] , [Dir]

+

@uƒtƒHƒ‹ƒ_‚ÌŽQÆvƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·B
+@‘I‘ð‚³‚ê‚½ƒtƒHƒ‹ƒ_–¼‚ð•Ô‚µ‚Ü‚·B
+@ƒLƒƒƒ“ƒZƒ‹‚µ‚½ê‡‚̓kƒ‹‚ª•Ô‚è‚Ü‚·B

+

@Dir‚͏‰Šú‘I‘ð‚̃fƒBƒŒƒNƒgƒŠ‚ŁAÈ—ª‚·‚é‚Ɓuƒ}ƒCƒRƒ“ƒsƒ…[ƒ^v‚Æ‚È‚è‚Ü‚·B
+@ƒƒbƒZ[ƒW‚ðÈ—ª‚·‚é‚ƁABrowseForFolderCaptionƒvƒƒpƒeƒB‚Ì“à—e‚É‚È‚è‚Ü‚·B

+

+

BSTR BrowseForFolderCaption

+

@uƒtƒHƒ‹ƒ_‚Ì‘I‘ðvƒ_ƒCƒAƒƒO‚̃fƒBƒtƒHƒ‹ƒg‚̃ƒbƒZ[ƒW‚ðŽw’肵‚Ü‚·B
+@BrowseForFolderƒƒ\ƒbƒh‚ÅŽw’肵‚½ƒƒbƒZ[ƒW‚ª—Dæ‚³‚ê‚Ü‚·B

+

@

+

£

+

@

+

ƒƒbƒZ[ƒWƒ{ƒbƒNƒX

+

ƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚ð•\Ž¦‚µ‚Ü‚·B

+

VBScript‚ÌMsgBox‚ȂǂƂ̈Ⴂ‚́AƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ðŽw’è‚·‚邱‚Æ‚É‚æ‚èeŽqŠÖŒW‚ª‚Å‚«‚éA‚Æ‚¢‚¤“_‚É‚ ‚è‚Ü‚·B
+‚µ‚½‚ª‚Á‚āAƒEƒBƒ“ƒhƒE‚ð•\Ž¦‚µ‚Ä‚¢‚é’†‚ɃƒbƒZ[ƒWƒ{ƒbƒNƒX‚ð•\Ž¦‚·‚é•K—v‚ª‚ ‚ê‚΁A‚±‚¿‚ç‚ðŽg‚¤‚Ù‚¤‚ª‚æ‚¢‚Å‚µ‚傤B

+

+

returnvalue MessageBox message , [typ] , [icon]

+

@ƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚ð•\Ž¦‚µ‚Ü‚·B
+@VBScript‚È‚Ç‚Å‚ÍMsgBox‚Æ‚¢‚¤ŠÖ”‚ª‚ ‚è‚Ü‚·‚ªA‚±‚̃ƒbƒZ[ƒWƒ{ƒbƒNƒX‚͐eƒEƒBƒ“ƒhƒE‚ð‚à‚‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+@InstanceƒIƒuƒWƒFƒNƒg‚ÌDialogƒIƒuƒWƒFƒNƒg‚©‚çMessageBox‚ðŽg‚¤ê‡AMainFrameƒIƒuƒWƒFƒNƒg‚ªeƒEƒBƒ“ƒhƒE‚Æ‚µ‚ÄŽg‚í‚ê‚Ü‚·B

+

@typ‚ɂ̓EƒBƒ“ƒhƒE‚̃^ƒCƒv‚ðŽ¦‚µ‚Ü‚·B
+@u‹tv‚̐”’l‚ðŽw’è‚·‚é‚ƁA2”Ԗڂ̃{ƒ^ƒ“‚ªƒfƒBƒtƒHƒ‹ƒgEƒ{ƒ^ƒ“‚É‚È‚è‚Ü‚·B

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
³‹t‘I‘ð€–Ú
010OK
111OK / CANCEL
212YES / NO
313YES / NO / CANCEL
414RETRY / CANCEL
515ABORT / RETRY / IGNORE
+

@icon‚ɂ́AƒAƒCƒRƒ“‚Ì•\Ž¦‚·‚éŽí—Þ‚ðŽw’肵‚Ü‚·B

+ + + + + + + + + + + + + + + + + + + + + +
0ƒAƒCƒRƒ“‚È‚µ
1ƒGƒ‰[
2Œx
3î•ñ
4–â‚¢‡‚킹
+

@ƒ†[ƒU[‚ª‘I‘ð‚µ‚½ƒ{ƒ^ƒ“‚ÌŒ‹‰Ê‚ªƒƒ\ƒbƒh‚Ì–ß‚è’l‚Æ‚È‚è‚Ü‚·B

+ + + + + + + + + + + + + +
1OK / YES / ÄŽŽs(RETRY)
0NO / –³Ž‹(IGNORE)
-1ƒLƒƒƒ“ƒZƒ‹ / ’†Ž~(ABORT)
+

@

+

+

BSTR MessageCaption

+

ƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚̃^ƒCƒgƒ‹‚𖾎¦‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+È—ª‚·‚é‚ƃƒCƒ“ƒEƒBƒ“ƒhƒE‚̃EƒBƒ“ƒhƒEƒLƒƒƒvƒVƒ‡ƒ“‚Æ“¯‚¶ƒ^ƒCƒgƒ‹‚É‚È‚è‚Ü‚·B

+


+£

+

@

+

ƒJƒ‰[‘I‘ðƒ_ƒCƒAƒƒO

+

F‘I‘ðƒ_ƒCƒAƒƒO‚ð•\Ž¦‚µ‚Ü‚·

+

+

long ColorDialog

+

ƒJƒ‰[‚ðì¬‚µ‚½‚è‚Å‚«‚Ü‚·B

+

+

@

+

£

+

@

+

ŠÂ‹«Ý’è

+

ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ðŽw’肵‚Ü‚·

+

+

SetMainWindow Obj

+

ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ðŽw’肵‚Ü‚·B
+Obj‚ɂ́AOverlappedWindowƒIƒuƒWƒFƒNƒg‚ðŽw’肵‚Ü‚·B

+

ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ðŽw’肵‚½ê‡AƒƒbƒZ[ƒWƒ{ƒbƒNƒX‚̃^ƒCƒgƒ‹‚ðŽæ“¾‚·‚éê‡‚É‚Í•K—v‚È‚Æ‚«‚ɐŽžAÅV‚̃LƒƒƒvƒVƒ‡ƒ“‚ªŽæ‚荞‚Ü‚ê‚Ü‚·B
+‚Ü‚½AƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ƐeŽqŠÖŒW‚ª‚‚­‚ç‚ê‚Ü‚·B
+ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚É‘®‚·‚éŒ`‚сƒbƒZ[ƒWƒ{ƒbƒNƒX‚âƒ_ƒCƒAƒƒO‚ª•\Ž¦‚³‚ê‚Ü‚·B

+

InstanceƒIƒuƒWƒFƒNƒg‚ÌDialogƒIƒuƒWƒFƒNƒgƒvƒƒpƒeƒB‚ðŽg‚¤ê‡‚ɂ́AMainFrameƒIƒuƒWƒFƒNƒg‚ª‚ ‚ç‚©‚¶‚߃ƒCƒ“ƒEƒBƒ“ƒhƒE‚Æ‚µ‚ĐݒèÏ‚Ý‚Å‚·B

+

@

+

@

+

£

+

@

+ + + + diff --git a/Help/env.gif b/Help/env.gif new file mode 100644 index 0000000000000000000000000000000000000000..e7fca3603490cee55fb28f614c3f9c56fa1bd6ef GIT binary patch literal 2071 zcma)(`#;lr1HeDKu^Y`86V2B)m+g#ZR%gl6*<3PHTBA}=rzW09>Kqo%$)(FS!-&lF zA=F&6N$Dn3nw=yHQz_(inl9AQWk=_trzf80{0Gnb_xBI)*E=kHBX3=-61anL0G5}R z7Z<-+ET2Do`1I=4;=)3-Y%dJ~;y}j={JKtWoFw@@trn!0U%$cXP zwXe#{UlbRQ7Z%Rsf<5wPc_hDZevsCDvgVDu!jq4&d>pE!? zFJhl8j8!r4a*$OcrjW_BEexgemT1Z$3I(Dic|~szj}S$QCFR@WcY2a+kpN&;hB1Bg zj5wbITay@Go{3CmlD?Cr_k>8aOh~BP@0lT_XGQKMK_S=OB_%$rsFYg_8bsghOoluU zKvzRA&tCUA$2jlRac#Eqn(j>s3OE>FznLo8Hq*KJTvrf>y`2~#dR$lE!mRW0&Jn86 zTkEO0KSWJ2?gMym|K4ed&NQo571*Y`b~dhA?b0NdJV!+fWl%m6$gigVY9zTXd)s&G zf`j2P1r5&35ZoASTu7q?)tavTQkc(Qb*JbpQHN27&~ABDfTSIIkDJF(E*rletPcDJ zXSb7++d9^;GSC$k3k>r)Q=BI+#S;78=vP8o;S{%R8;0$1FlM#CO!5M z=YfoY+sI60cH zA|88Pdt&sc9L_)(w5QW-$~%l$j~K0?5U}^tfXB2Dn~jyW((%4mzCL4Jn*L;f!uWTd z0Tr_c1XntFo8*-{Z7tJS7tI5{0^WiVq&fz+f;<65x2I(F>4ZM4J<}YU!F+yE^}hvn z0#swn?~dj0v#muF?A3w;^{kK9yZ$`B193z$qd1{F_+kTDBY9(WgN z{<$ntn#Q_)M{^KW?PBq6KUuPbT{hGVlla<9$1cdTc@>2xZ&{??lOl%yXq(BRa2w&; zj#`MKPP^0nK2K=X)>zcPL7jNI_Qy;qY^+6h5glnnx22VY1a)92>(=eXcq7rla&I>N z?Iqt@otH+?!jfjKdmm#wHFpHh(oMO zj%b9t9qC{I`!4MvjPH#CNJ&~h(3ibbtvQL2XKJza%u1P}htOqtgN-^ax={O&fs>;S ze>0F&7nU;kkK*84MSD>Rh0=wrWIYQSwQtJmdiHebORZTI{I3_O__=#)o_@rXm8Y)= zK^Px&WU`ExYgSJ$cMroHlMbcYoa<=1sJ8x;oa&}sI&DRhY6J!G^~P*k%etJy)dO?pu15_(GL!U2}8p^!fyW z?koP53CSHAE&Qw{)hwcQVPlxg_hp!AVC2x2{Bn?%)gpgbciT0c;{MI&lMvAa?TK1{`ASUDp@C{uY>{`FrCMct7tCgl7NCp-SPl_Ri1HIy z@fvJ)HO-J|Rr|fI6$<|&h*cTFyuXhSiqo|92=|E`VxhFMbGiYu{Mk7S%ZC(-**0^M2V{qSM}n2_X@6gf>f-)@c8iH3T}b@wDg3A + + + + + +Event + + + + + +

Event ƒCƒxƒ“ƒgƒIƒuƒWƒFƒNƒg

+
+

+

ƒ^ƒCƒ}[ˆÈŠO‚̃Cƒxƒ“ƒg‚ª”­¶‚·‚é‚ƁAOverlappedWindowƒIƒuƒWƒGƒNƒg‚ÌEventƒvƒƒpƒeƒB‚ɁA‚±‚̃IƒuƒWƒFƒNƒg‚ª“o˜^‚³‚ê‚Ä‚¢‚Ü‚·BƒCƒxƒ“ƒgƒIƒuƒWƒFƒNƒg‚́AÄ—˜—p‚³‚ê‚Ü‚¹‚ñBƒCƒxƒ“ƒg‚²‚Ƃɍ쐬‚³‚êA”jŠü‚³‚ê‚Ä‚¢‚Ü‚·B

+

+

MessageƒvƒƒpƒeƒB

+

ƒƒbƒZ[ƒW‚ðŽ¯•Ê‚·‚éƒR[ƒh‚ª“ü‚Á‚Ä‚¢‚Ü‚·B
+‚½‚Æ‚¦‚΁Aƒ^ƒCƒ}[‚Å‚ ‚ê‚Î257‚Å‚·B

+

ParameterƒvƒƒpƒeƒB

+

ƒpƒ‰ƒ[ƒ^[‚ŁAƒCƒxƒ“ƒg‚ÌŽí—Þ‚É‚æ‚è“à—e‚͈قȂè‚Ü‚·B

+

OnCommandƒCƒxƒ“ƒgAOnContextMenuAOnContextDelete‚Ȃǂ̃Cƒxƒ“ƒg‚ł́AƒCƒxƒ“ƒg‚𔭐¶‚·‚é‚«‚Á‚©‚¯‚Æ‚È‚Á‚½ƒRƒ“ƒgƒ[ƒ‹‚ÌID”ԍ†‚ª“ü‚Á‚Ä‚¢‚Ü‚·B

+

OnKeyDownƒCƒxƒ“ƒg‚ł́A‰¼‘zƒL[ƒR[ƒh‚ª“ü‚è‚Ü‚·B
+‚ǂ̃L[‚ªA‚ǂ̃R[ƒh‚𔭐¶‚³‚¹‚é‚©‚ÍŽÀÛ‚½‚µ‚©‚ß‚é‚Ì‚ªŠÈ’P‚Å‚·B

+

ExtParameterƒvƒƒpƒeƒB

+

Šg’£ƒpƒ‰ƒ[ƒ^[‚Å‚·B

+

OnKeyDown‚ł́AƒVƒtƒgƒL[‚ƃRƒ“ƒgƒ[ƒ‹ƒL[‚̏ó‘Ô‚ª“ü‚è‚Ü‚·B
+‰ºˆÊ2ƒrƒbƒg‚́A???? ??CS@‚̂悤‚É‚È‚Á‚Ä‚Ü‚·B

+

‚Pƒrƒbƒg–Ú‚ÅSHIFT‚̏ó‘ԁA‚Qƒrƒbƒg–Ú‚ÅCONTROL‚̏ó‘Ô‚ð•\‚µ‚Ü‚·B
+‚»‚êˆÈŠO‚̃rƒbƒg‚Í•s’è‚Å‚·B

+


+PosX
+PosY

+

ƒCƒxƒ“ƒg‚ª”­¶‚µ‚½Žž“_‚ł̃}ƒEƒXƒJ[ƒ\ƒ‹‚̃Nƒ‰ƒCƒGƒ“ƒgÀ•W‚ª“ü‚è‚Ü‚·B

+

DPosX
+DPosY

+

ƒCƒxƒ“ƒg‚ª”­¶‚µ‚½Žž“_‚ł̃}ƒEƒXƒJ[ƒ\ƒ‹‚̃sƒNƒZƒ‹’PˆÊ‚̃Nƒ‰ƒCƒGƒ“ƒgÀ•W‚ª“ü‚è‚Ü‚·B

+

time

+

ƒCƒxƒ“ƒg‚ª”­¶‚µ‚½Žž“_‚Å‚ÌŽž‚ª“ü‚è‚Ü‚·B

+

+

ƒwƒ‹ƒpƒƒ\ƒbƒh

+

‰º‹L‚̓Cƒxƒ“ƒg‚ÌŽí—Þ‚ð”»’f‚·‚郁ƒ\ƒbƒh‚Å‚·B

+

IsMouseMove
+IsClick
+IsRClick
+IsClickOut
+IsCommand
+IsSize
+IsExit
+IsOK
+IsCancel
+IsDblClick
+IdRDblClick
+IsContextMenu
+IsContextDelete
+IsKeydown

+

ƒƒbƒZ[ƒW‚ªŠY“–‚·‚ê‚ÎTrue‚ª•Ô‚è‚Ü‚·B

+

IsTimerƒƒ\ƒbƒh‚́A–³ˆÓ–¡‚Å‚·B
+
+ƒ^ƒCƒ}[‚ÍEventƒIƒuƒWƒFƒNƒg‚𐶐¬‚µ‚È‚¢‚½‚ß‚Å‚·B
+”»’f‚·‚é•K—v‚ª‚ ‚éê‡‚ÍDoEvent‚ª•Ô‚·ƒR[ƒh‚ª257‚Å‚ ‚邱‚Æ‚Å•ª‚©‚è‚Ü‚·B

+

’ˆÓI

+

‚à‚µAƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚ð‚‚©‚킸DoEvent‚ÆIF“™‚Ì”»’è‚ŃCƒxƒ“ƒg‚ðˆ—‚µ‚悤‚Æ‚·‚éê‡‚ɂ́Aƒ^ƒCƒ}[‚É‹C‚ð‚‚¯‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+DoEvent‚ªƒCƒxƒ“ƒgˆ—‚ ‚èA‚Æ‚µ‚Ä•Ô‚µ‚Ä‚«‚½‚Æ‚µ‚Ä‚àEVENTƒIƒuƒWƒFƒNƒg‚͈ȑO‚̃Cƒxƒ“ƒgƒR[ƒh‚ðŽ¦‚µ‚½‚Ü‚Ü‚Å‚·B
+‚·‚È‚í‚¿ADoEvent‚ª257‚ð•Ô‚µ‚Ä‚«‚½ê‡‚̓^ƒCƒ}[ˆ—‚ðs‚¢A‚»‚êˆÈŠO‚̏ꍇ‚ÉEventƒIƒuƒWƒFƒNƒg‚ðŽg‚¤‚悤‚É‚µ‚Ä‚­‚¾‚³‚¢B

+ + + + diff --git a/Help/evnt.gif b/Help/evnt.gif new file mode 100644 index 0000000000000000000000000000000000000000..0abf6ca521b114ecd80c820c5d45e169c826dcf7 GIT binary patch literal 1780 zcmaLS|3A}-1Hke3dmA=p_r_v;qW5fLHtfCG_0e(Nwnhk_>EyF?cb}mTOPz?5zTDY2 zvmurw;**UjUn7+-(J}2qiE`+3`s7o{Nnh@8pZbWac8~i9KChpjzr1#ahX!s-&;w-P z0RUJmmbY(zTU*;$US3;VTzT?jd1`9${{3eoBeVVePx|_P?CP3oYx}Xa^`5~nTvcT* zE&X1nyIoQ;TvXJn)%K`Voif=#Zf<{W?$u+*+K(J*Nl))Se7Nhtfs08=bqNXW@$vuI zy}ME*Y7mLeMMRW^gq-H_^n8ACP*7n&KqZ@<$6(04y>nq$M<$M3s`wgBF1hP zV{2==L-=Vs7nT@bwwhjEbb=Vxy#mxa(@0|yM3td{`UpfsM#@Nx^CZ#;gSza*SX>kw z-NG}Fm7iK%e%p9|Ff=RCq#Px3s2j+A9PzO-&;*Lx$F=o_^uY?50;O zyK(N0!Bug7`<&CB-n$XhaoN9z$n1g1!jO7bra*)>)uJ_%NX46^9HtN(E6rRz0S1_- zp_W(m3^Ri9epLK=P)uGG&Jx_Po2Fz5LVu#i$quZX{7z+amMouno{;_XBZtfrz2@4r z!;tB(c-D8p>z~?>o?6@dS-_}73)!^-XfT(%G^>O{>2oS#oOCXal&m3x>R3;Ua34cT zpVv^!rSn=RH>V27Y#4AWK!)f~izpG+sKWQ-(s>ZC5d){#LVcaO=d2!7Oqq}cjg1-F zp|-(8axCGi6+VhOAu*MbZnP_Gp!VC&=R`w1bh*RUhl60QxE%!i^gcpN^7(;_>iE(F zbN>BUz922)#omN7+(0D3F1iyL*pk6nkt@+Bd1!kVA$_p?qeY)3)#aNjiJ{QfpBT{5 zBRB&(#TmL)CqTxNRJe-D!CHF)PpPX+WH3~;{R#y{oLL;a{E;(^viEwI(|~JrK0XHw zKVG*%bLlT(`xeKS@OMEt_DuV~Q6iaB z8?!je5G)Dv-HsgFiGrX!Hq_wCcyIVP%(hpJyt{E0Uow02Q)y z6}gLBO{eqcII1wG43*8qNDw;&Ip8^Y~Viz)cPEaAY1w;fdd_}tq!u^26(jV z^$}P=}YiI^5qtH~)hmG0ZZY|W4H}c_Ks^z*T&^RXH z0k79sF90(A4n_q-=%4=XALJ@$sLohFgm!3T%R9$e%MD=sC5vj?+(}yW=Wr zz^K3@UTA1l8zL0gP42;Xq8syURqXR=_yrk0d=~X)a^TBXEm^&EvK3jv$N!?j{An|p zvK?C>x-C%?A;G#EUlXC4ClkZ5@u?H?U11b&MuioH!xP$VhreMw9L8psmrA0nIgX7b z)}Qcj_JD;VrT{|}-xz#@gi7Lwam1vIlC0Pt9M6SaaNdHpXI%h_5~-l;SWf6KD@n9N z*WBV)z~Q|rJ&Ia2=C!*+_pLsJngT+27(Bl-6;SJzrr*N4QvCEP*cl`LLeJ)(j2u@M z1m=A$mJG+?)x|xHm=I#Dc4yqrVDcTnHrs$r=PJv1rV`)CE7f~OekyFkhxq=5|9$*p z&bi)KJl3sAQ1T)lg@pv57Z3ZfI>YBoI{!iETNf90vg38JJVKwVSGx{g7?>yJikO`1LM!}*Ypne1Eqo* Rjjei6<<%@2s8s+!(C-z0$sqs$ literal 0 HcmV?d00001 diff --git a/Help/extrap.gif b/Help/extrap.gif new file mode 100644 index 0000000000000000000000000000000000000000..6837a4173b362e671e8ec100164e6164535e89eb GIT binary patch literal 197 zcmZ?wbhEHb6k(8H*v!E29|(*Y&YU?jbLLDS{tsjUMbeDVq#4fyG0y3D4DggHm#~{)kbvVgJ~eD7c2vaDmKWHjarLtp_cO z4fa@_Tl~E_Hf8goHfM!>(
19=#Ej9;CsO5n}8aQD>*p5zIAYjcljs + + + + + + +Form + + + + + +

ƒtƒH[ƒ€ ƒIƒuƒWƒFƒNƒg

+
+

+

ƒtƒH[ƒ€ƒIƒuƒWƒFƒNƒg‚́AOverlappedWindowƒIƒuƒWƒFƒNƒg‚̃vƒƒpƒeƒB[‚Æ‚µ‚Ď擾‚³‚ê‚Ü‚·B

+

ì¬‚³‚ê‚éƒRƒ“ƒgƒ[ƒ‹‚̈ʒu‚ÍŽw’肵‚È‚¢‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+‚Ü‚½ID”ԍ†‚Í10”Ô‚æ‚è‚Í‚¶‚Ü‚é˜A”Ô‚Æ‚È‚è‚Ü‚·B

+

@

+

+

ƒRƒ“ƒgƒ[ƒ‹‚̓EƒBƒ“ƒhƒE‚ªì¬‚·‚éˆÈ‘O‚É’è‹`‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ꂽŽž“_‚ÅŽ–‘O’è‹`‚³‚ê‚Ä‚¢‚½ƒRƒ“ƒgƒ[ƒ‹‚ªì¬‚³‚ê‚Ü‚·B
+ƒEƒCƒ“ƒhƒEì¬Œã‚ɃRƒ“ƒgƒ[ƒ‹‚ðì¬‚µ‚½ê‡‚́A‚½‚¾‚¿‚ɃRƒ“ƒgƒ[ƒ‹‚ªŽÀ‘Ì‚ðŽ‚¿‚Ü‚·B

+

ƒRƒ“ƒgƒ[ƒ‹‚̃EƒBƒ“ƒhƒE‚É‚¨‚¯‚é”z’u‚ɂ‚¢‚Ä’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+ƒRƒ“ƒgƒ[ƒ‹‚ÍŽ©“®”z’u‚ðs‚¤ê‡AƒEƒBƒ“ƒhƒE‚Ì•‚ð‚à‚Æ‚ÉŽ©“®“I‚ɐ܂è•Ô‚µ‚È‚Ç‚ðs‚¢‚Ü‚·B
+ƒRƒ“ƒgƒ[ƒ‹‚ð”z’u‚ª‚¨‚í‚Á‚½‚ ‚ƂŃEƒBƒ“ƒhƒE‚̃TƒCƒY‚ðŽw’肵‚Ä‚àŒø‰Ê‚ª‚ ‚è‚Ü‚¹‚ñB

+

@

+

+

Control( X ) ƒvƒƒpƒeƒB

+

@ID”ԍ†X‚ð‚à‚ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‘¶Ý‚µ‚È‚¢ê‡‚ÍEmpty

+

Leftmargin
+RightMargin@ƒvƒƒpƒeƒB

+

@ƒRƒ“ƒgƒ[ƒ‹‚ðì¬‚·‚é‚Æ‚«‚ÌŽ©“®”z’u‚̍¶‰E‚Ì—]”’‚ðÝ’肵‚Ü‚·B

+

SetControlFont ( FONTNAME,FONTSIZE )

+

@ƒRƒ“ƒgƒ[ƒ‹‚É“K—p‚·‚éƒtƒHƒ“ƒg–¼‚ƃTƒCƒY‚ðŽw’肵‚Ü‚·B

+

+

unk Label TEXT, [width] , [height]

+

@ƒ‰ƒxƒ‹‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiF‚̓tƒH[ƒ€‚Ì”wŒiF‚ɏ]‚¢‚Ü‚·BƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B

+

unk Button TEXT, [width] , [height]

+

@ƒ{ƒ^ƒ“‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiFAƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B

+

unk CheckBox TEXT, [width] , [height]

+

@ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiF‚̓tƒH[ƒ€‚Ì”wŒiF‚ɏ]‚¢‚Ü‚·BƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B

+

unk Edit TEXT, [width] , [height]

+

@ƒeƒLƒXƒgƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiFAƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B
+

+

ClearControls

+

@ƒRƒ“ƒgƒ[ƒ‹‚ð‚·‚×‚ÄƒNƒŠƒA‚µ‚Ü‚·B

+

ControlBreak

+

@Ž©“®”z’u‚ðÜ‚è•Ô‚µ‚Ü‚·B

+

ControlGroup

+

@‚‚¬‚̃Rƒ“ƒgƒ[ƒ‹‚ðƒOƒ‹[ƒvƒAƒCƒeƒ€‚̍ŏ‰‚É‚µ‚Ü‚·

+

unk RadioButton TEXT, [ wide], [height]

+

@ƒ‰ƒaƒIƒ{ƒ^ƒ“‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiF‚̓tƒH[ƒ€‚Ì”wŒiF‚ɏ]‚¢‚Ü‚·BƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B

+


+ControlPad [width] , [height]

+

@‚‚¬‚̃Rƒ“ƒgƒ[ƒ‹”z’uˆÊ’u‚ðŽw’萔’l‚¾‚¯ƒIƒtƒZƒbƒg‚µ‚Ü‚·

+

unk PasswordEdit TEXT , [width] , [height]

+

@ƒpƒXƒ[ƒhƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B

+

unk ReadonlyEdit TEXT , [width] , [height]

+

@ƒŠ[ƒhƒIƒ“ƒŠ[ƒeƒLƒXƒgƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+

+

unk CheckBox3State TEXT , [width] , [height]

+

@ƒXƒŠ[ƒXƒe[ƒgEƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+

+

unk PushCheckButton TEXT,[width],[height]

+

@‰Ÿ‚µƒ{ƒ^ƒ“‚ÌŠOŒ©‚ð‚à‚ƒ`ƒFƒbƒNƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiFAƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B
+

+

unk PushRadioButton TEXT , [width] ,[height]

+

@‰Ÿ‚µƒ{ƒ^ƒ“‚ÌŠOŒ©‚ðŽ‚Âƒ‰ƒWƒIƒ{ƒ^ƒ“‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@”wŒiFAƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B
+

+

unk StatusLabel TEXT , [width] , [height]

+

@—§‘Ì“I‚ȃ‰ƒxƒ‹‚ðì¬‚µ‚Ü‚·

+

ControlUseStatusEdge

+

@ˆÈ~‚ɍ쐬‚·‚éƒRƒ“ƒgƒ[ƒ‹‚ɃXƒ^ƒeƒBƒbƒNƒGƒbƒW‚ð‚‚¯‚Ü‚·B

+

unk ListBox [width] , [height]

+

@ƒŠƒXƒgƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

unk MultiListBox [width] , [height]

+

@•¡”‘I‘ðƒŠƒXƒgƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

unk DropdownList [width],[height]

+

@ƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒgƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

unk DropdownEdit [width] ,[height]

+

@ƒhƒƒbƒvƒ_ƒEƒ“ƒGƒfƒCƒbƒgƒ{ƒbƒNƒX‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

unk TreeView [width] , [height]

+

@ƒcƒŠ[ƒrƒ…[‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+@”wŒiFAƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B

+

unk ListView [width] , [height]

+

@ƒŠƒ|[ƒgŒ`Ž®‚̃ŠƒXƒgƒrƒ…[‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+@”wŒiFAƒeƒLƒXƒgF‚͉æ–ʂ̃vƒƒpƒeƒB‚ɏ]‚¢‚Ü‚·B

+

unk EditListView [width] , [height]i–¢ŠJ”­j

+

@ƒŠƒ|[ƒgŒ`Ž®‚̃ŠƒXƒgƒrƒ…[‚ðì¬‚µ‚Ü‚·B
+@€–Ú‚ð•ÒW‚·‚邱‚Æ‚ª‰Â”\‚Å‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

unk CheckListView [width] , [height]i–¢ŠJ”­j

+

@ƒ`ƒFƒbƒNƒ{ƒ^ƒ“‚̂‚¢‚½ƒŠƒ|[ƒgŒ`Ž®‚̃ŠƒXƒgƒrƒ…[‚ðì¬‚µ‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’è‚Å‚«‚Ü‚·BÈ—ª‚·‚é‚ÆŽ©“®Ý’肳‚ê‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‰Šú’l‚ðÝ’è‚·‚é‚ɂ́AƒEƒBƒ“ƒhƒE¶¬Œã‚ɃIƒuƒWƒFƒNƒg‚©‚ç‘€ì‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+

+

ControlColor ƒvƒƒpƒeƒB

+

@ƒRƒ“ƒgƒ[ƒ‹‚Ì”wŒiF‚ðÝ’肵‚Ü‚·B’ʏí‚ÍŽg‚¢‚Ü‚¹‚ñB

+ + + + diff --git a/Help/head.gif b/Help/head.gif new file mode 100644 index 0000000000000000000000000000000000000000..78b09c8e64289809b94177cb7024fcabe0904592 GIT binary patch literal 10488 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 E0RGTq8~^|S literal 0 HcmV?d00001 diff --git a/Help/hint.gif b/Help/hint.gif new file mode 100644 index 0000000000000000000000000000000000000000..05e36a1f868196fa7e28423bb10d9a69179898e6 GIT binary patch literal 129 zcmZ?wbhEHb?0DF7W@q#D5}y;!hSv1_l-e9R?r(nZdxKH^IZ` z)r`wo6SHr~nAR*<5$RObbf{~Yn)X^voA9l@PiL_FIdEUagXKrp0mUF8Mh0sD|A|Kj literal 0 HcmV?d00001 diff --git a/Help/howtocreate.htm b/Help/howtocreate.htm new file mode 100644 index 0000000..1d190c9 --- /dev/null +++ b/Help/howtocreate.htm @@ -0,0 +1,160 @@ + + +SeraphyScriptTools‚ÌŽg‚¢•û + + + + + + + + + +

SeraphyScriptTools‚ÌŽg‚¢•û

+
+

[‘Ήž‚·‚éƒXƒNƒŠƒvƒgŠÂ‹«]

+

@SeraphyScriptTools‚ÍActiveXƒIƒuƒWƒFƒNƒg‚Å‚·B
+@‚±‚̃IƒuƒWƒFƒNƒg‚ÍWSHŠÂ‹«‚ÉŠÈ’P‚Ƀ†[ƒU[‘Θb”\—Í‚ðŽ‚½‚¹‚邱‚Æ‚ð–Ú“I‚Æ‚µ‚č쐬‚³‚ê‚Ü‚µ‚½B
+@Windows Scripting Host(WSH)‚̃XƒNƒŠƒvƒgã‚Å—˜—p‚·‚é‚Ì‚ª–{—ˆ‚Ì—˜—p•û–@‚Å‚·B

+

@WSH‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚éŠÂ‹«‚ł́Aƒtƒ@ƒCƒ‹Šg’£ŽquVBSv‚Ü‚½‚́uJSv‚ªVBScript/JavaScript‚ɑΉž‚·‚éƒXƒNƒŠƒvƒgƒtƒ@ƒCƒ‹‚É‚È‚è‚Ü‚·B
+@ƒc[ƒ‹‚É‚æ‚Á‚ẮA‚»‚Ì‚Ù‚©‚ÌŒ¾Œê‚Å‚à—˜—p‚Å‚«‚é‚悤‚ÉŠg’£‚³‚ê‚Ä‚¢‚邱‚Æ‚ª‚ ‚è‚Ü‚·B

+

@ƒCƒxƒ“ƒg‚ðƒnƒ“ƒhƒ‹‚·‚邽‚߂ɂ́AVersion5ˆÈ~‚̃XƒNƒŠƒvƒgƒGƒ“ƒWƒ“‚ðŽg—p‚·‚é•K—v‚ª‚ ‚è‚Ü‚·B
+@‚±‚̃Gƒ“ƒWƒ“‚ÍIE5‚ÉŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·B

+

@

+

[ƒCƒxƒ“ƒg‚ƃIƒuƒWƒFƒNƒg‚̐¶¬•û–@]

+

@ActiveXƒIƒuƒWƒFƒNƒg‚𐶐¬‚·‚éƒRƒ}ƒ“ƒh‚͈ê”Ê“I‚É‚ÍCreateObject‚ðŽg‚¢‚Ü‚·B
+

+

@VBS‚È‚ç
+@dim Obj
+@set Obj = CreateObject( EEEE)

+

@‚±‚Ì•û–@‚Å‚àASeraphyScriptTools‚Í“®ì‚µ‚Ü‚·‚ªAƒ†[ƒU[ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ɏ_“‚ðŽ‚½‚¹‚é‚È‚ç‚΁AƒCƒxƒ“ƒg‚ðƒnƒ“ƒhƒŠƒ“ƒO‚Å‚«‚é•û–@‚ª–]‚Ü‚µ‚¢‚Æ‚¢‚¦‚Ü‚·B

+

@SeraphyScriptTools‚́Aì¬‚µ‚½ƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒE‚âƒ{ƒ^ƒ“‚ðƒ†[ƒU[‚ªƒNƒŠƒbƒN‚·‚é‚È‚Ç‚Ì“®ì‚ðs‚Á‚½‚Æ‚«AƒCƒxƒ“ƒg‚𔭐¶‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@WSH‚ł́AƒCƒxƒ“ƒg‚ɑΉž‚µ‚ăXƒNƒŠƒvƒg‚ðŽÀs‚³‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+

@VBS‚È‚ç‚Î
+@dim Obj
+@set Obj = WScript.CreateObject(EEEE , "eventhandler_")

+

@WSH‚̃ƒ\ƒbƒh‚Å‚ ‚éAWScript.CreateObject‚ŃIƒuƒWƒFƒNƒg‚𐶐¬‚·‚é‚ƁA‚»‚̃IƒuƒWƒFƒNƒg‚ª”­¶‚·‚éƒCƒxƒ“ƒg‚ÅŽw’肵‚½–¼‘O‚ÅŽn‚Ü‚éƒTƒuƒ‹[ƒ`ƒ“iJScritp‚ł̓tƒ@ƒ“ƒNƒVƒ‡ƒ“j‚ðŽÀs‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B

+

@‚Ü‚½ASeraphyScriptToolsƒIƒuƒWƒFƒNƒg‚́A‚µ‚΂µ‚ΐV‚½‚ȃIƒuƒWƒFƒNƒg‚𐶐¬‚µ‚Ä•Ô‚µ‚Ü‚·B
+@‚±‚̃IƒuƒWƒFƒNƒg‚ª”­¶‚·‚éƒCƒxƒ“ƒg‚ðƒnƒ“ƒhƒ‹‚·‚é•û–@‚à‚ ‚è‚Ü‚·B

+

@WScript.ConnectObject(Obj,"Eventhandler_")
+@WScript.DisconnectObject(Obj)

+

@‚±‚Ì2‚‚ÌWSH‚̃ƒ\ƒbƒh‚̓IƒuƒWƒFƒNƒg‚ª”­¶‚·‚éƒCƒxƒ“ƒg‚ðƒnƒ“ƒhƒ‹‚µ‚½‚è‰ðœ‚µ‚½‚è‚Å‚«‚Ü‚·B

+

@

+

[ƒCƒxƒ“ƒg‚ðƒnƒ“ƒhƒ‹‚·‚éA•Ê‚Ì•û–@]

+

@VBScript Version5.0‚æ‚èƒTƒ|[ƒg‚³‚ꂽƒNƒ‰ƒXEƒIƒuƒWƒFƒNƒg‚ðŽg‚¦‚΁AƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰‚́A‚³‚ç‚ÉŠÈ’P‚É‚È‚è‚Ü‚·B
+@WSH‚ÌConnectObject‚ðŽg‚¤•K—v‚à‚ ‚è‚Ü‚¹‚ñB
+@ ‚±‚Ì•û–@‚ɂ‚¢‚ẮA‰ž—p•Ò‚É‚Äà–¾‚µ‚Ü‚·B

+

@‚Ü‚½A‹ŒSeraphyScriptDialog‚̃‚[ƒhƒŒƒXƒ_ƒCƒAƒƒO‚̂悤‚ɃXƒNƒŠƒvƒgã‚ŃCƒxƒ“ƒg‚ðƒnƒ“ƒhƒ‹‚·‚邱‚Æ‚à‰Â”\‚Å‚·B
+@‚±‚Ì•û–@‚ɂ‚¢‚Ä‚àA‰ž—p•Ò‚É‚Äà–¾‚µ‚Ü‚·B

+

@

+

mƒƒbƒZ[ƒWƒ‹[ƒv‚Ƃ́Hn

+

@]—ˆ‚ÌVBScript‚ł̃XƒNƒŠƒvƒg‚Í‘½­‚Ì•ªŠò‚Í‚ ‚Á‚Ä‚àAã‚©‚牺‚Ö—¬‚ê‚ďI‚í‚éA‚Æ‚¢‚¤ƒpƒ^[ƒ“‚Å‚ ‚邱‚Æ‚ª‘½‚©‚Á‚½‚ÆŽv‚¢‚Ü‚·B
+@‚±‚ê‚Í“®ì‚ª‚ ‚ç‚©‚¶‚ߌˆ‚ß‚ç‚ê‚Ä‚¢‚éƒoƒbƒ`ˆ—‚Ȃǂ̈ê”Ê“I‚ÈŒ`Ž®‚Å‚·B

+

@ ‚µ‚©‚µAƒ†[ƒU[‚̉ž“š‚ð‘Ò‚Á‚Ä“®ì‚ðs‚¤ƒvƒƒOƒ‰ƒ€‚ł́A‚±‚̂悤‚É‚Í‚¢‚«‚Ü‚¹‚ñB
+ @‚¢‚‰½‚ð‚·‚é‚©‚̓†[ƒU[‚Ì‘€ì‚ÅŒˆ’肳‚êAƒvƒƒOƒ‰ƒ€‚Í•ª‚©‚è‚Ü‚¹‚ñB

+

@

+

@‚±‚̂悤‚ȏˆ—‚ðs‚¤ê‡‚ɂ́uƒƒbƒZ[ƒWƒ‹[ƒvv‚Æ‚¢‚¤‚à‚Ì‚ª•K—v‚Æ‚È‚è‚Ü‚·B
+ @ ƒ†[ƒU[‚©‚ç‚ÌŽwŽ¦‚È‚Ç‚ðuƒƒbƒZ[ƒWv‚ƌĂсA‚±‚̃ƒbƒZ[ƒW‚ð‘Ò‹@‚µ‚‚¯‚邽‚߂̃‹[ƒvˆ—‚Ì‚±‚Æ‚Å‚·B
+ @ƒƒbƒZ[ƒW‚ª“ü‚é‚ƁAƒƒbƒZ[ƒWƒ‹[ƒv‚́A‚»‚̃ƒbƒZ[ƒW‚ɑΉž‚µ‚½Žw’肳‚ꂽˆ—iƒCƒxƒ“ƒgj‚ðs‚킹‚Ü‚·B
+ @‚±‚̏ˆ—‚ªI‚í‚ê‚΁A‚Ü‚½ƒ†[ƒU[‚©‚ç‚ÌŽwŽ¦‚ð‚܂ƒ‹[ƒv‚É–ß‚è‚Ü‚·B
+ @‚±‚̃‹[ƒv‚̓EƒBƒ“ƒhƒE‚ª•Â‚¶‚ç‚ê‚éA‚Ȃǂ̏󋵂ɂȂç‚È‚¢ŒÀ‚è‰i‹v‚É‘±‚«‚Ü‚·B
+ @ƒƒbƒZ[ƒWƒ‹[ƒv‚ªI—¹‚·‚é‚̂́AƒEƒBƒ“ƒhƒE‚ª•Â‚¶‚ç‚ê‚ㆁ[ƒU[‚Ƃ̑Θb‚Ì•K—v«‚ª‚È‚­‚È‚Á‚½‚Æ‚«‚Å‚·B

+

@‚±‚̂悤‚ȍ\‘¢‚ð‚à‚ꍇAƒ†[ƒU[‚©‚ç‚ÌŽwŽ¦‚ÅŽÀs‚³‚ê‚éƒR[ƒh‚̓Tƒuƒ‹[ƒ`ƒ“‚ÌŒ`Ž®‚ð‚Æ‚Á‚āAƒƒbƒZ[ƒWƒ‹[ƒv‚©‚çŒÄ‚яo‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚·B
+ @‚±‚̂悤‚ȃR[ƒh‚ðAƒCƒxƒ“ƒg‚ɑΉž‚·‚éƒR[ƒh@= ƒCƒxƒ“ƒgEƒnƒ“ƒhƒ‰A‚ƌĂт܂·B
+ @SeraphyScriptTools‚ł́A‚±‚̃Cƒxƒ“ƒgƒnƒ“ƒhƒ‰‚́AƒEƒBƒ“ƒhƒE‚ÉŠÖ˜A•t‚¯‚ç‚ꂽƒNƒ‰ƒXƒIƒuƒWƒFƒNƒg‚̃ƒ\ƒbƒh‚©A‚ ‚é‚¢‚ÍWSH‚ÌConnectObjectƒƒ\ƒbƒh‚É‚æ‚Á‚Đڑ±‚³‚ꂽƒTƒuƒ‹[ƒ`ƒ“‚Æ‚È‚è‚Ü‚·B

+

@

+

mŠÈ’P‚ȃeƒXƒgƒvƒƒOƒ‰ƒ€‚ðŽŽ‚µ‚Ä‚Ý‚én@

+

@‚±‚±‚Ü‚Å‚Ìà–¾‚ŁAƒ†[ƒU[ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ð‚à‚ƒXƒNƒŠƒvƒg‚ɂ̓ƒbƒZ[ƒWƒ‹[ƒv‚ª‚ ‚é‚Æ‚¢‚¤‚±‚Æ‚ª•ª‚©‚Á‚½‚ÆŽv‚¢‚Ü‚·B

+

@‚ł́AŽÀÛ‚ÉŠÈ’P‚ȃ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚ðì¬‚µ‚Ä‚Ý‚Ü‚µ‚傤B

+

@‰º‹L‚̃ŠƒXƒg‚ðƒRƒs[&ƒy[ƒXƒg‚µ‚ÄŠg’£ŽqVBS‚Å•Û‘¶‚µ‚ÄŽÀs‚µ‚Ä‚Ý‚Ü‚·B

+ + + + +
+


+ Option Explicit
+
+ Dim Obj
+ Set Obj = WScript.CreateObject("SeraphyScriptTools.Instance")
+ WScript.ConnectObject Obj.MainFrame,"Main_"
+
+ With Obj.MainFrame
+     With .Form
+         .Label("HELLO!")
+         .Button("Create New Frame").SetID(50)
+     End With
+     .SetPlacement ,,300,150
+     .Open "SeraphyScriptTools Test1"
+ End With
+
+ Obj.MainFrame.DoModal
+
+ WScript.DisconnectObject Obj.MainFrame
+
+ '---------------------------------------------------------
+ '@ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰
+ sub Main_OnCommand()
+     dim ev
+     set ev = Obj.MainFrame.Event
+     if(ev.Parameter = 50) then
+         CreateNewFrame
+     end if
+ end sub
+
+ '---------------------------------------------------------
+ ' •â•ƒTƒuƒ‹[ƒ`ƒ“
+ Dim count
+ sub CreateNewFrame()
+     With Obj.MainFrame.CreateChild
+         .SetPlacement ,,150,150
+         .BackColor = int(Rnd() * &hFFFFFF)
+         .Open "SUBFRAME " & count
+         With .Canvas.Layer(0)
+           .SetMappingMode 1
+             .color + = int(Rnd() * &hFFFFFF)
+             .fillcolor + = int(Rnd() * &hFFFFFF)
+             .fontcolor + = int(Rnd() * &hFFFFFF)
+             .FillCircle + 70,65,35
+             .Text + 70,65,count
+         End With
+     End With
+     count = count + 1
+ end sub
+

+
+ +

‚±‚̃Tƒ“ƒvƒ‹‚̓{ƒ^ƒ“‚ð‰Ÿ‚·‚²‚ƂɃJƒ‰ƒtƒ‹‚ȃEƒBƒ“ƒhƒE‚ªA‚Ç‚ñ‚Ç‚ñŠJ‚¢‚Ä‚ä‚«‚Ü‚·B

+

@

+

[ƒeƒXƒgƒvƒƒOƒ‰ƒ€‚Ìà–¾]

+

@‚±‚±‚ł̓ƒbƒZ[ƒWƒ‹[ƒv‚ªA‚Ç‚±‚É‚ ‚é‚Ì‚©‚¾‚¯AŠÈ’P‚Éà–¾‚µ‚Ü‚·B

+

@WScript.CreateObject‚ŁA‚Ü‚¸ASeraphyScriptTools.InstanceƒIƒuƒWƒFƒNƒg‚𐶐¬‚µ‚Ü‚·B
+ @‚±‚ÌŽž“_‚ŁAƒEƒBƒ“ƒhƒE‚Æ‚È‚éOverlappedWindow‚ÍInstanceƒIƒuƒWƒFƒNƒg‚̃vƒƒpƒeƒB‚Æ‚µ‚ж¬Ï‚Ý‚Å‚·B
+ @‚‚¬‚ɁAƒ†[ƒU[‚©‚ç‚̃{ƒ^ƒ“‘€ì‚ðŠ´’m‚µA‚»‚ê‚ðƒXƒNƒŠƒvƒg‚Å”½‰ž‚Å‚«‚é‚悤‚É‚·‚邽‚߂ɁAƒIƒuƒWƒFƒNƒg‚ðÚ‘±‚µ‚Ü‚·B

+

@WScript.ConnectObject‚ŁAƒEƒBƒ“ƒhƒE‚©‚ç‚Ì’Ê’m‚ðƒXƒNƒŠƒvƒg‚ŏˆ—‚Å‚«‚é‚悤‚ɐڑ±‚µ‚Ü‚µ‚½B
+ @ƒ†[ƒU[‚©‚ç‚Ì‘€ì‚ð‚¤‚¯‚Æ‚Á‚½ƒEƒBƒ“ƒhƒE‚́AƒXƒNƒŠƒvƒg‚É’Ê’m‚µAuMain_v‚Å‚Í‚¶‚Ü‚éƒTƒuƒ‹[ƒ`ƒ“‚ªŽÀs‚³‚ê‚é‚悤‚É‚È‚è‚Ü‚·B

+

@ƒIƒuƒWƒFƒNƒg‚̐ڑ±‚ªI‚í‚Á‚½Œã‚ŁAƒEƒBƒ“ƒhƒE‚Ì’è‹`‚ðs‚¢‚Ü‚·B
+ @‚±‚±‚ł́AƒEƒBƒ“ƒhƒE‚Ì‘å‚«‚³‚ƁAƒEƒBƒ“ƒhƒE‚Ì’†‚Ƀ{ƒ^ƒ“‚ð1‚‚¾‚¯ì‚Á‚Ä‚¢‚Ü‚·B
+ @’è‹`‚ª‚¨‚í‚Á‚½‚çAuopenvƒƒ\ƒbƒh‚ŃEƒBƒ“ƒhƒE‚ðŠJ‚«A•\Ž¦‚³‚¹‚Ü‚·B

+

@•\Ž¦‚·‚邾‚¯‚ł̓†[ƒU[‚©‚ç‚Ì‘€ì‚ðŽó‚¯•t‚¯‚ç‚ê‚È‚¢‚̂ŁA‚±‚±‚©‚烆[ƒU[‚Ì‘€ì‚ð‚¤‚¯‚‚¯‚郋[ƒv‚É“ü‚è‚Ü‚·B

+

@uDoModalvƒƒ\ƒbƒh‚ŁAƒ†[ƒU[‚ªƒEƒBƒ“ƒhƒE‚́u•Â‚¶‚évƒ{ƒ^ƒ“‚ð‰Ÿ‚·‚©AƒEƒBƒ“ƒhƒE‚ªƒXƒNƒŠƒvƒg‚É‚æ‚Á‚ĕ‚¶‚ç‚ê‚é‚܂ŁAƒ†[ƒU[‚Ì‘€ì‚ð‘Ò‚¿‚‚¯‚郁ƒbƒZ[ƒWƒ‹[ƒv‚ðŠJŽn‚µ‚Ü‚·B
+ @‚±‚̃ƒ\ƒbƒh‚ªI—¹‚µ‚āA‚‚¬‚̃R[ƒh‚ðŽÀs‚·‚é‚̂̓EƒBƒ“ƒhƒE‚ª•Â‚¶‚ç‚ꂽ‚ ‚Æ‚É‚È‚è‚Ü‚·B

+

@ƒEƒBƒ“ƒhƒE‚ª•Â‚¶‚ç‚ꂽ‚ ‚ƂɁAWScript.DisconnectObject‚ŃIƒuƒWƒFƒNƒg‚Æ‚Ì’Ê’m‚ðØ’f‚µ‚Ü‚·B
+

+

@ƒXƒNƒŠƒvƒg‚́A‚±‚Ì‚ ‚Æ‚É‘±‚¢‚Ä‚¢‚Ü‚·‚ªA‚·‚ׂăTƒuƒ‹[ƒ`ƒ“‚Ì’è‹`‚Å‚·B
+ @‚µ‚½‚ª‚Á‚āA‚±‚Ì—á‚ł́AŽÀÛ‚ÉŽÀs‚³‚ê‚éƒR[ƒh‚́ADoModal‚ªÅŒã‚Æ‚È‚è‚Ü‚·B
+ @ƒXƒNƒŠƒvƒg‚ªI’[‚É’B‚·‚é‚ƁAƒIƒuƒWƒFƒNƒg‚ÍŽ©“®“I‚ɐؒfE”jŠü‚³‚ê‚é‚Ì‚ÅŒãŽn––‚Í•K—v‚ ‚è‚Ü‚¹‚ñB
+ @i¡‰ñ‚̃P[ƒX‚ł́ADisconnectObjectƒƒ\ƒbƒh‚ÍŽÀÛ‚͌Ăяo‚³‚È‚­‚Ä‚à³í‚ɏI—¹‚µ‚Ü‚·Bj

+

@‚±‚̂悤‚ɁA’ʏí‚̃oƒbƒ`ˆ—“I‚ȃXƒNƒŠƒvƒg‚ÆŒˆ’è“I‚ɈႤ‚̂́AƒƒbƒZ[ƒWƒ‹[ƒv‚ª‘¶Ý‚µA‚»‚±‚ŏI—¹‚܂Ń‹[ƒv‚µ‚‚¯‚Ä‚¢‚éA‚Æ‚¢‚¤‚±‚Æ‚Å‚·B

+

@

+ + diff --git a/Help/howtocreate2.htm b/Help/howtocreate2.htm new file mode 100644 index 0000000..40e924e --- /dev/null +++ b/Help/howtocreate2.htm @@ -0,0 +1,165 @@ + + + +SeraphyScriptTools‚ÌŽg‚¢•ûi‰ž—pj + + + + + + + + + + +

SeraphyScriptTools‚ÌŽg‚¢•û2@‰ž—p•Ò

+
+

mVBS Ver5‚ð—˜—p‚µ‚½A‚à‚Á‚Æ‚àŠÈ’P‚ȃEƒBƒ“ƒhƒE¶¬•û–@n

+

@ƒCƒxƒ“ƒg‚̃nƒ“ƒhƒ‹‚ƁAƒIƒuƒWƒFƒNƒg‚ÌŠÇ—‚ɁAVBScript‚̃Nƒ‰ƒX‚ðŽg‚¤‚ÆŠÈ’P‚Å‚·B
+@‚Ü‚¸AƒXƒNƒŠƒvƒg‚́A“ÆŽ©‚ɍ쐬‚µ‚½ƒNƒ‰ƒXuMainFramev‚𐶐¬‚³‚¹‚Ü‚·B
+@‚±‚ꂾ‚¯‚ŁAƒXƒNƒŠƒvƒg‚ÌŽÀs‚͏I‚í‚è‚Ü‚·B

+

dim obj
+set obj = new MainFrame

+

@‚±‚̃R[ƒh‚ðŽÀs‚·‚é‚ɂ́AuMainFramev‚Æ‚¢‚¤ƒNƒ‰ƒX‚Ì’è‹`‚ª•K—v‚Å‚·B
+@ƒNƒ‰ƒX‚́A‚‚¬‚̂悤‚É’è‹`‚µ‚Ü‚·B

+

class mainframe
+  public instance
+
+  public sub class_initialize
+    set instance = createobject("seraphyscripttools.instance")
+    with instance.mainframe
+      .classobject = me
+      .domodal
+    end with
+  end sub
+end class
+

+

@‚±‚̃Nƒ‰ƒX‚̓EƒBƒ“ƒhƒE‚𐶐¬‚·‚邾‚¯‚Å‚·B
+@‚±‚ꂪƒEƒBƒ“ƒhƒE‚𐶐¬‚·‚éÅ’á‚̍\‘¢‚Æ‚È‚è‚Ü‚·B

+

@ƒNƒ‰ƒX‚Ì’†g‚ð‚Ý‚Ä‚ä‚«‚Ü‚µ‚傤B

+

@public instance

+

@‚Æ‚¢‚¤s‚ª‚ ‚è‚Ü‚·B
+@‚±‚ê‚̓Nƒ‰ƒX‚ª‚à‚AƒIƒuƒWƒFƒNƒg•Ï”‚Å‚·B
+@‚±‚±‚ɁASeraphyScriptToolsƒIƒuƒWƒFƒNƒg‚𐶐¬‚µ•Û‘¶‚µ‚Ü‚·B

+

@public sub class_initialize
+@c
+@end sub

+

@‚Æ‚¢‚¤ƒTƒuƒvƒƒV[ƒWƒƒ‚ª‚ ‚è‚Ü‚·B
+@‚±‚̃TƒvƒvƒƒV[ƒWƒƒ‚̓Nƒ‰ƒX‚ª¶¬‚³‚ê‚é‚ƤŽ©“®“I‚ɌĂяo‚³‚ê‚Ü‚·B
+@‚‚܂èA–`“ª‚Łuset obj = new MainFramev‚Æ‚¢‚¤s‚É‚æ‚Á‚āA‚±‚̃Nƒ‰ƒX‚ª¶¬‚³‚ê‚é‚Æ“¯Žž‚ɌĂяo‚³‚ê‚Ü‚·B

+

@‚±‚̃‹[ƒ`ƒ“‚Ì’†‚ŁACreateObjectŠÖ”‚É‚æ‚Á‚āASeraphyScriptTools‚ª¶¬‚³‚êAƒNƒ‰ƒX‚̃ƒ“ƒouinstancev‚É•Û‘¶‚³‚ê‚Ä‚¢‚Ü‚·B

+

@‚‚¢‚āASeraphyScriptTools‚ªÅ‰‚ɐ¶¬‚µ‚½MainFrameƒIƒuƒWƒFƒNƒg‚ɃAƒNƒZƒX‚µ‚Ü‚·B

+

@.ClassObject = me

+

@‚Æ‚¢‚¤‚Ì‚ªƒ|ƒCƒ“ƒg‚Å‚·B
+@‚±‚́umev‚̓Nƒ‰ƒXŽ©g‚ðŽ¦‚·ƒIƒuƒWƒFƒNƒg‚Å‚·B
+@MainFrame‚́AClassObject‚ɃXƒNƒŠƒvƒg‚̃Nƒ‰ƒX‚ð“n‚·‚±‚ƂŁA‚³‚Ü‚´‚܂ȃCƒxƒ“ƒg‚ɉž‚¶‚āAƒNƒ‰ƒX‚ÌŒöŠJƒvƒƒV[ƒWƒƒ‚ðŒÄ‚яo‚·‚±‚Æ‚ª‰Â”\‚É‚È‚è‚Ü‚·B

+

@‚½‚¾‚µAVBAVBA‚ł́umev‚͐³Ž®‚ȃhƒLƒ…ƒƒ“ƒg‚ÉŒfÚ‚³‚ê‚Ä‚¢‚Ü‚·‚ªAVBScript‚ł́A‚È‚º‚©umev‚̓hƒLƒ…ƒƒ“ƒg‚ɍڂÁ‚Ä‚Ü‚¹‚ñI
+@‚µ‚©‚µA“®ì‚µ‚Ü‚·‚µAJScript‚É‚Í“¯—l‚È‹@”\‚ª‚ ‚è‚Ü‚·‚©‚çAVBScript‚Ɂumev‚ªÚ‚Á‚Ä‚È‚¢‚̂̓}ƒjƒ…ƒAƒ‹‚Ì•s”õ‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+@‚à‚¿‚ë‚ñAVB/VBA‚ÅŽg‚¦‚āAVBS‚ÉŽg‚¦‚È‚¢‹@”\A‚̐§ŒÀ‚Ì’†‚ɂ́A‚±‚ê‚ÍŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚¹‚ñB
+@‚Ü‚ AŽg‚¦‚é‚Ì‚Å‹C‚É‚µ‚È‚¢‚±‚Æ‚É‚µ‚Ü‚·B
+@‹C‚É‚È‚é•û‚́AƒNƒ‰ƒX‚Å‚Í‚È‚­AŠî‘b•Ò‚Åà–¾‚µ‚½uƒIƒuƒWƒFƒNƒg‚̐ڑ±v‚É‚æ‚é•û–@‚ð—˜—p‚µ‚Ä‚­‚¾‚³‚¢B

+

@‚‚¬‚ɁADoModalƒƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚Ü‚·B
+@‚±‚ê‚É‚æ‚èAƒEƒBƒ“ƒhƒE‚Ì•\Ž¦‚ð•\Ž¦‚³‚¹‚Ü‚·B
+@DoModal‚ðŒÄ‚яo‚µ‚½ê‡Aƒ†[ƒU[‚ªƒEƒBƒ“ƒhƒE‚ð•Â‚¶‚é‚Ü‚Å–ß‚Á‚Ä‚«‚Ü‚¹‚ñB
+
+@ƒ†[ƒU[‚ªƒEƒBƒ“ƒhƒE‚ð•Â‚¶‚é‚ÆDoModal‚ÌŽŸ‚̃Xƒeƒbƒv‚ɐi‚Ý‚Ü‚·B
+@Set obj = new MainFrame
+@‚ÌŽŸ‚̍s‚ɐi‚ނ킯‚Å‚·‚ªA‚à‚¤‰½‚à‚ ‚è‚Ü‚¹‚ñB
+@ƒNƒ‰ƒX‚ÍŽ©“®“I‚É”jŠü‚³‚êA‚»‚Ì‚Æ‚«‚ɁAƒNƒ‰ƒXEƒƒ“ƒo‚Å‚ ‚éuInstancev‚à”jŠü‚³‚ê‚Ü‚·B
+@SeraphyScriptTools‚ª”jŠü‚³‚ê‚āAƒXƒNƒŠƒvƒg‚͏I—¹‚µ‚Ü‚·B

+

@

+

[ƒtƒH[ƒ€‚Ì’è‹`‚ƁA‚»‚̉ž“š‚ɂ‚¢‚Ä]

+

@‚³‚āA‰½‚à–³‚¢ƒEƒBƒ“ƒhƒE‚ð•\Ž¦‚µ‚Ä‚à–Ê”’‚­‚È‚¢‚̂ŁAƒEƒBƒ“ƒhƒE‚Ì’†‚É•¶Žš“ü—̓{ƒbƒNƒX‚ƃ{ƒ^ƒ“‚ðì‚è‚Ü‚·B
+@‚»‚̃{ƒ^ƒ“‚É”½‰ž‚·‚é‚悤‚É‚µ‚Ä‚Ý‚Ü‚·B

+

@‚Ü‚¸A•¶Žš“ü—̓{ƒbƒNƒX‚ƃ{ƒ^ƒ“‚ðƒRƒ“ƒgƒ[ƒ‹‚Å‚«‚é‚悤‚ɁA2‚‚̃IƒuƒWƒFƒNƒg‚ðì‚è‚Ü‚·B
+@poublic instance‚ÌŽŸ‚̍s‚ɁA‚ ‚炽‚É2‚‚̃IƒuƒWƒFƒNƒg•Ï”‚ð’è‹`‚µ‚Ü‚·B

+

public instance
+public edt,cmd
+

+

@‚‚¬‚ɁApublic sub class_initialize ƒTƒuƒvƒ[ƒVƒWƒƒ‚ŁADoModal‚Ì‘O‚ɃtƒH[ƒ€‚ðì¬‚ƃEƒBƒ“ƒhƒE‚ðì¬‚³‚¹‚Ü‚·B

+

with .form
+  .label "ƒ‰ƒxƒ‹"
+  set edt = .edit("ƒGƒfƒCƒbƒgƒ{ƒbƒNƒX")
+  set cmd = .button("•\Ž¦").SetClassEvent("CMD_SHOW")
+end with
+.open "ƒeƒXƒg
"
+DoModal
+

+

+

@‚±‚ê‚ðŽÀs‚·‚ê‚΁AuƒeƒXƒgv‚Æ‚¢‚¤ƒEƒBƒ“ƒhƒE‚Ì’†‚ɁAƒ‰ƒxƒ‹‚Æ‚¢‚¤•\Ž¦‚ƁA•¶Žš“ü—̓{ƒbƒNƒX‚ƃ{ƒ^ƒ“‚ªì‚ç‚ê‚Ä‚¢‚Ü‚·B

+

@‚½‚¾‚µA‚Ü‚¾A‚È‚É‚à“®ì‚µ‚Ü‚¹‚ñB

+

@ƒNƒ‰ƒX‚ɁACMD_SHOW‚Æ‚¢‚¤ŒöŠJƒTƒuƒvƒ[ƒVƒWƒƒ‚ðì¬‚µ‚Ü‚·B

+

public sub CMD_SHOW
+  instance.dialog.messagebox edt.text
+end sub
+

+

@ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚é‚ƁuCMD_SHOWvƒvƒƒV[ƒWƒƒ‚ªŒÄ‚яo‚³‚ê‚Ü‚·B
+@‚Ç‚¤‚µ‚āAuCMD_SHOWv‚Æ‚¢‚¤–¼‘O‚̃vƒ[ƒVƒWƒƒ‚ªŒÄ‚яo‚³‚ê‚é‚©‚Æ‚¢‚¦‚΁Au.SetClassEventv‚Æ‚¢‚¤ƒƒ\ƒbƒh‚ÅŽw’肵‚Ä‚¢‚é‚©‚ç‚Å‚·B
+@‚±‚̃ƒ\ƒbƒh‚́AƒNƒ‰ƒX‚́A‚ǂ̃vƒƒV[ƒWƒƒ‚ðŒÄ‚яo‚·‚©Œˆ’è•t‚¯‚é‚à‚Ì‚Å‚·B

+

@instance.dialog.messagebox‚́AInstanceƒIƒuƒWƒFƒNƒg‚ªŠÇ—‚µ‚Ä‚¢‚éƒ_ƒCƒAƒƒOƒ{ƒbƒNƒXEƒIƒuƒWƒFƒNƒg‚̃ƒbƒZ[ƒWƒ{ƒbƒNƒX‚ð•\Ž¦‚·‚é‚à‚Ì‚Å‚·B
+@edt.text‚́A•¶Žš“ü—̓{ƒbƒNƒXƒIƒuƒWƒFƒNƒg‚©‚çAŒ»Ý“ü—Í‚³‚ê‚Ä‚¢‚镶Žš‚ðŽæ“¾‚µ‚Ü‚·B

+

@msgbox edt.text ‚Å‚à‚æ‚¢‚悤‚ÉŽv‚í‚ê‚é‚©‚à‚µ‚ê‚Ü‚¹‚ñB
+@msgbox‚ÍVBScript‚Ì•W€‚̃ƒbƒZ[ƒWƒ{ƒbƒNƒX‚Å‚·B
+@‚µ‚©‚µAƒEƒBƒ“ƒhƒE‚̐eŽqŠÖŒW‚ª‚È‚¢‚̂ŁA•\Ž¦‚³‚ê‚Ä‚¢‚éƒEƒBƒ“ƒhƒE‚ƃƒbƒZ[ƒWƒ{ƒbƒNƒX‚Æ‚ª“Æ—§‚µ‚ÄŒ©‚¦‚Ü‚·B
+@•sŽ©‘R‚È“®‚«‚Å‚ ‚Á‚½‚èAê‡‚É‚æ‚Á‚ẮAƒEƒBƒ“ƒhƒE‚ɉB‚ê‚Ä‚µ‚Ü‚¤‰Â”\«‚ª‚ ‚è‚Ü‚·B
+@eŽqŠÖŒW‚ª‚ ‚éAInstance.DialogƒIƒuƒWƒFƒNƒg‚ðŽg‚¤‚±‚Æ‚ª‚æ‚¢‚Å‚µ‚傤B

+

@

+

mOK/CANCEL“®ì‚Ì’è‹`•û–@n

+

@‚Æ‚±‚ë‚ŁAŒ»Ý‚̃EƒBƒ“ƒhƒE‚́AƒŠƒ^[ƒ“ƒL[‚Ü‚½‚̓GƒXƒP[ƒvƒL[‚ŏI—¹‚µ‚Ä‚µ‚Ü‚¢‚Ü‚·B

+

@ŽÀ‚́Aƒ{ƒ^ƒ“‚ð‰Ÿ‚³‚È‚­‚Ä‚àA‚±‚Ì2‚‚͎©“®“I‚ɃRƒ}ƒ“ƒhƒCƒxƒ“ƒg‚ª”­¶‚µ‚Ä‚¢‚Ü‚·B

+

 public sub OnOK‚ƁApublic sub OnCancel‚ðì¬‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B

+

public sub OnOK
+  instance.dialog.messagebox "OK"
+end sub
+
+public sub OnCancel
+  instance.dialog.messagebox "CANCEL"
+end sub

+

@ƒŠƒ^[ƒ“ƒL[‚Ü‚½‚̓GƒXƒP[ƒvƒL[‚É”½‰ž‚µ‚āAƒTƒuƒvƒ[ƒVƒWƒƒ‚ªŽÀs‚³‚ꂽ‚ ‚ƁAƒEƒBƒ“ƒhƒE‚ª•Â‚¶‚é‚ÆŽv‚¢‚Ü‚·B

+

@‚½‚¾‚µADefaultActionƒvƒƒpƒeƒB[‚ªFALSE‚̏ꍇ‚́AƒCƒxƒ“ƒg‚ª”­¶‚µ‚Ü‚·‚ªŽ©“®“I‚ɂ͕‚¶‚Ü‚¹‚ñB
+@‚Ü‚½AOnOKAOnCacelƒvƒƒV[ƒWƒƒ“à‚ŁAQuitƒvƒƒpƒeƒB‚ðFALSE‚É‚µ‚½ê‡‚à•Â‚¶‚ç‚ê‚Ü‚¹‚ñB

+

@‚½‚Æ‚¦‚΁A

+

public sub OnOK
+  if(instance.dialog.messagebox("•Â‚¶‚Ä‚à‚æ‚¢‚Å‚·‚©?",1) += -1) then
+    instance.mainframe.quit = false
+  end if
+end sub
+

+

@‚±‚̂悤‚É‚·‚ê‚΁Aó‹µ‚É‚¨‚¤‚¶‚ĕ‚¶‚½‚èA•Â‚¶‚È‚©‚Á‚½‚è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@QuitƒvƒƒpƒeƒB[‚ðTRUE‚É‚·‚ê‚ÎŽ©“®“I‚ɕ‚¶‚ç‚ê‚Ü‚·‚ªACloseƒƒ\ƒbƒh‚ŕ‚¶‚Ä‚à‚©‚Ü‚¢‚Ü‚¹‚ñB

+

@

+

mOK/CANCEL‚̃fƒBƒtƒHƒ‹ƒg‚̃{ƒ^ƒ“‚Ì’è‹`n

+

@ƒL[ƒ{[ƒh‚É‚æ‚éOK.CANCEL‚Ì’è‹`•û–@‚¾‚¯‚Å‚Í•s\•ª‚Å‚·B
+@’ʏí‚́AƒtƒH[ƒ€‚É‚àOK/CANCELƒ{ƒ^ƒ“‚ð‚‚¯‚é‚Ì‚ª•’Ê‚Å‚·B

+

@‚»‚̏ꍇASetEventNameƒƒ\ƒbƒh‚ŁuOnOKvuOnCancelv‚ðŽw’肵‚Ä‚à“®ì‚µ‚Ü‚·B
+@‚µ‚©‚µAƒ{ƒ^ƒ“‚ÌŠOŒ©‚ª‚í‚©‚è‚Ü‚¹‚ñB

+

@ƒ{ƒ^ƒ“‚ð’è‹`‚·‚é‚Æ‚«‚ɁASetEventName‚Ì‚©‚í‚è‚ɁASetIDƒƒ\ƒbƒh‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢A
+@SetIDƒƒ\ƒbƒh‚Łu1v‚ªŽw’肳‚ꂽƒ{ƒ^ƒ“‚́AŽ©“®“I‚É•W€‚̃{ƒ^ƒ“‚Æ‚¢‚¤ˆµ‚¢‚É‚È‚é“ÁŽêƒR[ƒh‚É‚È‚Á‚Ä‚¢‚Ü‚·B

+

@Cancelƒ{ƒ^ƒ“‚́Au2v‚ðŽw’肵‚Ä‚­‚¾‚³‚¢BŠOŒ©‚Í‚©‚í‚è‚Ü‚¹‚ñ‚ªA“®ì‚ÍOnCacel‚Æ“¯‚¶‚É‚È‚è‚Ü‚·B

+

@ƒTƒ“ƒvƒ‹‚ðŽQl‚É‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B

+

@

+

m‚±‚Ì‚Ù‚©‚̃Cƒxƒ“ƒg‚̃nƒ“ƒhƒ‹•û–@n

+

@ƒ}ƒEƒX‚̃_ƒEƒ“EƒAƒbƒvAˆÚ“®‚ð‚Í‚¶‚߁Aƒƒjƒ…[‚Ì‘I‘ð‚ȂǁA‚¢‚ë‚¢‚ë‚ȃCƒxƒ“ƒg‚ª”­¶‚µ‚Ü‚·B
+@‚±‚ê‚ç‚́A“¯—l‚ɁAƒNƒ‰ƒX‚ÉŒöŠJƒvƒƒV[ƒWƒƒ‚ðÝ’è‚·‚邱‚Ƃŏˆ—‚·‚邱‚Æ‚ª‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B

+

@ƒTƒ“ƒvƒ‹‚ðŽQl‚É‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B

+

@

+

mƒTƒuEƒEƒBƒ“ƒhƒE‚̐¶¬‚ɂ‚¢‚ān

+

@ƒTƒuƒEƒBƒ“ƒhƒE‚à“¯—l‚È•û–@‚ÅŠJ‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B
+
+@‚½‚¾‚µA’ˆÓ‚µ‚Ä‚Ù‚µ‚¢‚̂́AuƒƒbƒZ[ƒWƒ‹[ƒvv‚ðˆ—‚µ‚Ä‚¢‚éƒEƒBƒ“ƒhƒEˆÈŠO‚Ì‘€ì‚ª‚Å‚«‚È‚¢‚±‚Æ‚Å‚·B
+@ƒ_ƒCƒAƒƒO‚Ì’†‚ŁA‚³‚ç‚ɕʂ̃_ƒCƒAƒƒO‚ðŠJ‚­ê‡‚́Ae‚É‚È‚éƒEƒBƒ“ƒhƒE‚ðuEnable += FALSEv‚ÅŽg—p‹ÖŽ~‚É‚µ‚Ä‚­‚¾‚³‚¢B
+@‚»‚¤‚µ‚È‚¢‚Æ•sŽ©‘R‚É‚È‚è‚Ü‚·B

+

@“¯Žž‚É•¡”‚̃EƒBƒ“ƒhƒE‚ð—˜—p‰Â”\‚É‚·‚éê‡‚́AInstanceƒIƒuƒWƒFƒNƒg‚©‚烁ƒbƒZ[ƒWƒ‹[ƒv‚ðˆ—‚µ‚Ä‚­‚¾‚³‚¢B
+@‚±‚̃IƒuƒWƒFƒNƒg‚©‚烁ƒbƒZ[ƒWƒ‹[ƒv‚ðˆ—‚·‚é‚ƁA¶¬‚³‚ê‚Ä‚¢‚éA‚·‚ׂẴEƒBƒ“ƒhƒE‚̃ƒbƒZ[ƒWƒ‹[ƒv‚ð“KØ‚ɏˆ—‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+

@ƒTƒ“ƒvƒ‹‚ðŽQl‚É‚µ‚Ä‚Ý‚Ä‚­‚¾‚³‚¢B

+

@

+ + + + diff --git a/Help/hs.gif b/Help/hs.gif new file mode 100644 index 0000000000000000000000000000000000000000..d624bb14f702ccccbdb539179030b0b3b222d3e5 GIT binary patch literal 2067 zcma))`&-iY0)Rh!fdssSXb74LDF}#0UP`M|U(6822+hoTx}do-ZKg(>W)|QL%?mEu z@|;pkO}vJisi_%WQ*w!U$+eo7vT0d)YEJFcIA{OCd4GO?d7tO?^XGYahsyyKi~(RU z7*oo_!h@_e*@d?#!8in3##<$H&FuoZ_O23Y1B8Bh`G`UH2^Co6zvsdL=z;(oPk?!`bN`#VL{Rr7|! z%+PAVk%lJP6(_<#oWOP5Xla=JFOfZ&Omm<)%dPi@*vH%3Q!}GOLj45+LQ!yGXyic# z(F_Fu*2a&$vD(?ed1G`?tTU5wip`F#Zg#C^P>HnjRDM+yBZ*H>W;h%pQXS~+4#All zUH2tuooQ719&0j{5lwB{-8kRAv9?|l+A`nVQniqP2J5=tEIiNL|1#FI;RDW}d(fZF zjDK*s#D*xs6_GY|$$L%eZs1$+Bc__FKItV_s>L7TZpVy*=i zppwlU`f3d3xhm1;akJbkv2$Lu2CgHs6uccd{LV9DWJ}rhYpD~nqAPf79&Fhh(&cru z>iZRlo-=WWcJc$r^^*8Im+|vsSK=Id5P%tSuV1PKG6;=f&?(}088Qn?;wZzUUm=ig zg1p*97@@-uEH~qyE=CL(F`RjaDLPQthX^@#zkDgY%@rKqXm z@>VD)r|r>dh(FUW!_le%q67Wc7`-9GFg=!5MA*37SmP* z0^8o9>-Kw2jfSDq|(^u&kRo#r)34=WuPu@}1`ROEr-@ zlex`$pCjkS>o-3y*6-;**-55dcvf8X#k8%YWSVH*EO(jv;_(Av=Qi1WbK@PhP;#ry zbB>^B8F*41ZE09bme}iD=wO}n~%4aqEo`ezj^tMzKKN=j;A~alt6~+ z5k@JFUFHVkSLT-O4=m**fNl0*Po;%7U+ilG1XxwKHfVP(a_h}JT+ikT=(F(KVe_No zLXOmep^m_NsU%+dicA;1gqA2<*HebDNZWn!Eg433W!#DJo{J#ysZ6@aOVSz56$qv< z75jkoFTx<)<-!G_hi09(*+0lFea8PgcrDz65=E^2vVjNb(r+W~#VDt5MXKjTrciJ8 zK?FYzB54g$lqn4V^{%jvkWsbsgl|6TdnL5x#*F!L_};9Wmi!PVYis>o*sdy7YS<*& zmPX=Y2KS+qiLbv?nN%>!9H3f`5x5hTc7Zpb3*}X<^ONSGBTEsJj$*`>22-Ta;`)ON zeW2;E79uEt?gAZQCYGLw+qb^=nOhMGrXz{UKqMP3%J7yVo3P}e(G0||65!cf6?nQn z10Xf8IGIeF!{e_&nenUD(2bQXR%)xU>uVk&`7%_eAPdaa@YpiiXETaQ$| z+vCQp&`VllRYL|&-GeI7zcfnw#`JbaghPQc)#@N+bc185+Ant`craXkCQ%x^CJx3V zmJ%DIwPgWbI!w;%klA#uvtO9Zs8zL&tBzEs>vcGf{UZ7K__9_F_RvlOA~q7Xc4a_G z!D6V=m5D0o-?hafE+-wcq)FnRrfTEN_w0tt!y2Rj-~r?Xug?bo+%hrRqCEr^mYDV- z?}TiVvJ7>YGH2wAhu&qwC^)GawVom?7N(Qeu5v2bEe+*_?O)j~ddf|0HsKliF674a guM>7^o-rL~?}lAlki2L-f^~d+6(iKN$pP5*U*)S>2mk;8 literal 0 HcmV?d00001 diff --git a/Help/index.htm b/Help/index.htm new file mode 100644 index 0000000..e75f54c --- /dev/null +++ b/Help/index.htm @@ -0,0 +1,95 @@ + + + +‚Í‚¶‚ß‚É + + + + + + + +

seraphyscripttoolsƒwƒ‹ƒv

+
+

Version 1.0
+
copyright(c)  2001/1/21 + seraphy
+

+
+

ŠT—v

+

@SeraphyScriptTools‚́AWindows Scripting Host(WSH)ã‚ÅŠÈ’P‚Ƀ_ƒCƒAƒƒO‚ðì¬‚µAƒXƒNƒŠƒvƒg‚ɑΘb‹@”\‚ðŽ‚½‚¹‚ç‚ê‚é‚悤‚É‚·‚郆[ƒeƒŠƒeƒB[‚Å‚·B

+

‚‚¬‚̂悤‚È‹@”\‚ðŽ‚Á‚Ä‚¢‚Ü‚·B

+
    +
  • @•¡”‚̃tƒŒ[ƒ€ƒEƒBƒ“ƒhƒE‚̍쐬‚ÆŠÇ—‚ª‚Å‚«‚Ü‚·
  • +
  • @ƒtƒŒ[ƒ€ã‚ɁAƒ{ƒ^ƒ“AƒGƒfƒBƒbƒgƒ{ƒbƒNƒXAƒ‰ƒxƒ‹AƒŠƒXƒgƒrƒ…[AƒcƒŠ[ƒrƒ…[‚ðì¬‚Å‚«‚Ü‚·B
  • +
  • @ƒRƒ“ƒgƒ[ƒ‹‚Ì”z’u‚̓fƒBƒtƒHƒ‹ƒg‚Å‚ÍŽ©“®”z’u‚³‚ê‚Ü‚·‚ªAƒsƒNƒZƒ‹’PˆÊ‚ÅŽw’è‚à‰Â”\‚Å‚·B
  • +
  • @ƒtƒŒ[ƒ€ã‚ɃxƒNƒ^[ƒOƒ‰ƒtƒBƒNƒX‚ð•`‰æ‚µ‚½‚èˆóü‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
  • +
  • @‰æ‘œ‚ð•\Ž¦‚µ‚½‚èˆóü‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·
  • +
+

@

+

“®ìŠÂ‹«

+

@SeraphyScriptTools‚́AInternetExplorer5ˆÈ~‚̃XƒNƒŠƒvƒgƒGƒ“ƒWƒ“‚ð—˜—p‚ð‘O’ñ‚Æ‚µ‚Ä‚¢‚Ü‚·B
+@‚Ü‚½AƒXƒNƒŠƒvƒg‚ðŽÀs‚·‚邽‚ß‚É‚ÍWSH‚̃Cƒ“ƒXƒg[ƒ‹‚ª•K—v‚Å‚·B
+@WSH‚́A Windows98AWindows2000ˆÈ~‚É‚Í•W€‚ŃCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚Ü‚·B
+@NT4.0‚âWin95‚̏ꍇ‚̓}ƒCƒNƒƒ\ƒtƒg‚̃z[ƒ€ƒy[ƒW‚©‚çƒ_ƒEƒ“ƒ[ƒh‚µ‚Ä‚­‚¾‚³‚¢B

+
    +
  • @Windows95iInernetExplore5ˆÈ~‚ÆWSH‚ª•K{j
  • +
  • @WindowsNT4.0iSP4ˆÈ~AIE5ˆÈ~‚ÆWSH‚ª•K{j
  • +
  • @Windows98
  • +
  • @Windows2000
  • +
+

@Win9x‚ł́Aê‡‚É‚æ‚Á‚Ä‚ÍDCOM‚̃Cƒ“ƒXƒg[ƒ‹‚ª•K—v‚Æ‚³‚ê‚éê‡‚à‚ ‚è‚Ü‚·B

+

@s „§ t
+@Internet Explorer5ˆÈ~iƒXƒNƒŠƒvƒgƒGƒ“ƒWƒ“‚ÆDCOM‚̃Cƒ“ƒXƒg[ƒ‹‚ªŠÜ‚Ü‚ê‚Ä‚¢‚Ü‚·j

+

2001”N1ŒŽŒ»ÝAÅV‚̃XƒNƒŠƒvƒgƒGƒ“ƒWƒ“‚͉º‹L‚æ‚èƒ_ƒEƒ“ƒ[ƒh‚Å‚«‚Ü‚·B
+http://www.microsoft.com/msdownload/vbscript/scripting.asp

+

@

+

Žg—p‹–‘øðŒ

+

@‚±‚̃\ƒtƒgƒEƒFƒA‚̓tƒŠ[ƒEƒFƒA‚Æ‚µA‚Ç‚È‚½‚Å‚à§ŒÀ‚È‚­‚²—˜—p‚¢‚½‚¾‚¯‚Ü‚·B
+@‚½‚¾‚µA’˜ìŒ ‚ÍSeraphy‚É‚ ‚èA–³’f‚ʼnü•Ï‚·‚邱‚Æ‚Í‚È‚è‚Ü‚¹‚ñB
+@ +‚±‚̃\ƒtƒgƒEƒFƒA‚ð—˜—p‚µ‚½A‚¢‚©‚Ȃ錋‰Ê‚ɂ‚¢‚Ä‚àìŽÒ‚¨‚æ‚эĔz•zŽÒAÐ‰îŽÒ‚͈êØ‚̐ӔC‚𕉂í‚È‚¢‚à‚Ì‚Æ‚µ‚Ü‚·B
+@‚ ‚­‚Ü‚Å‚à—˜—pŽÒŽ©g‚̐ӔC‚͈͓̔à‚É‚¨‚¢‚Ä‚²—˜—p‚­‚¾‚³‚¢B
+@‚±‚±‚Å‚¢‚¤—˜—pŽÒ‚Ƃ́ASeraphyScriptTools‚ð—˜—p‚·‚éƒXƒNƒŠƒvƒg‚̃Gƒ“ƒhƒ†[ƒU[‚ðŠÜ‚Ý‚Ü‚·B
+@SeraphyScriptTools‚ðƒGƒ“ƒhƒ†[ƒU[“™A‘æ3ŽÒ‚É”z•z‚·‚éê‡‚ɂ́A”z•zŽÒ‚́A‚±‚ÌŽg—p‹–‘øðŒ‚ðà–¾‚µ‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB

+

@Ä”z•z‚·‚éê‡‚ÌŒ`‘Ԃɂ‚¢‚Ä‚ÍSeraphyScriptTools‚Ì“¯ˆê«‚𑹂Ȃí‚È‚¢ŒÀ‚èAƒƒfƒBƒA‚ÌŽí—Þ‚âƒA[ƒJƒCƒo‚ÌŽí—Þ‚ð–â‚¢‚Ü‚¹‚ñB
+@“ÆŽ©‚̃Cƒ“ƒXƒg[ƒ‰‚ð—˜—p‚µ‚Ä‚©‚Ü‚¢‚Ü‚¹‚ñB
+@ƒCƒ“ƒXƒg[ƒ‹‚É•K{‚È‚Ì‚ÍSeraphyScriptTools–{‘̂ƃwƒ‹ƒvƒtƒ@ƒCƒ‹‚ðŠÜ‚ÞŽŸ‚Ì3‚‚ł·B
+@‚ǂ̃tƒHƒ‹ƒ_‚ɃRƒs[‚µ‚Ä‚à\‚¢‚Ü‚¹‚ñ‚ªAProgramFiles\seraphyware\scrtolƒtƒHƒ‹ƒ_‚𐄏§‚µ‚Ü‚·B

+
    +
  1. SeraphyScriptTools.DLL
  2. +
  3. SeraphyScriptTools.chm
  4. +
  5. SeraphyScriptTools.idx
  6. +
+

@‚È‚¨AƒoƒOC³‚Ȃǂ̓IƒuƒWƒFƒNƒg‚̏㏑‚«‚Æ‚È‚è‚Ü‚·‚̂ŁA«—ˆ‚É‚¨‚¢‚āA‚©‚Ȃ炸‚µ‚à“¯ˆê«‚ª•ÛŽ‚³‚ê‚é‚Æ‚ÍŒÀ‚ç‚È‚¢‚±‚Æ‚ðA‚ ‚ç‚©‚¶‚ß‚²—¹³‚­‚¾‚³‚¢BiƒIƒuƒWƒFƒNƒg\‘¢‚ªˆÙ‚È‚éV‚µ‚¢ƒo[ƒWƒ‡ƒ“‚̃ŠƒŠ[ƒX‚́A‚±‚ÌŒÀ‚è‚Å‚Í‚ ‚è‚Ü‚¹‚ñBj

+

@Seraphy‚̓o[ƒWƒ‡ƒ“ƒAƒbƒv“™‚Ì‚¨’m‚点‚âî•ñ‚ð‚¨’m‚点‚·‚éA–³—¿‚̃[ƒŠƒ“ƒOƒŠƒXƒg‚ÉŽQ‰Á‚µ‚Ä‚¢‚Ü‚·B
+@ƒ[ƒŠƒ“ƒOƒŠƒXƒg‚ÉŽQ‰Á‚·‚é‚ɂ̓xƒNƒ^[ìŽÒƒy[ƒW‚©‚çƒZƒ‰ƒtƒB[‚̃y[ƒW‚ɃAƒNƒZƒX‚µ‚Ä‚­‚¾‚³‚¢B
+@‚Ü‚½AÅVî•ñ‚È‚Ç‚ðA‚±‚±‚©‚çŽæ“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+@‚È‚¨A‰º‹LƒAƒhƒŒƒX‚ɂāAƒoƒNî•ñA—v–]A‚²ˆÓŒ©‚Ȃǂ𓊍e‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+

  mailto:seraphyware@freeml.com
+

+

ƒCƒ“ƒXƒg[ƒ‹

+

@ƒCƒ“ƒXƒg[ƒ‰‚Í•t‘®‚µ‚Ä‚¢‚Ü‚¹‚ñB
+@‰ð“€‚³‚ꂽƒtƒ@ƒCƒ‹‚ðƒtƒHƒ‹ƒ_‚²‚Æ”CˆÓ‚̃fƒBƒŒƒNƒgƒŠ‚ɃRƒs[‚µ‚½‚ ‚ƁAregsvr32.exe‚ðŽg‚Á‚āASeraphyScriptTools.DLL‚ÉŽ©ŒÈ“o˜^‚³‚¹‚Ä‚­‚¾‚³‚¢B

+

@—á)
+@regsvr32.exe "c:\progra~1\seraphy\scrtol\seraphyscripttools.dll"
+
+@‚½‚¾‚µ‚­“o˜^‚³‚ꂽê‡‚ɂ́AuDllRegisterServer in xxxxx +succeeded.v‚Æ‚¢‚¤ƒƒbƒZ[ƒW‚ª•\Ž¦‚³‚ê‚Ü‚·B

+

+


+@“o˜^‰ðœ‚ɑΉž‚µ‚Ä‚¢‚Ü‚·B
+@ƒAƒ“ƒCƒ“ƒXƒg[ƒ‹‚Íregsvr32.exe -u‚Å“o˜^‰ðœ‚µ‚ÄDLL‚ðíœ‚µ‚Ä‚­‚¾‚³‚¢B
+

+

@

+

XV—š—ð

+

2001/1 Version1.0@ŒöŠJ
+2000/9@Version1.0ƒx[ƒ^EƒŠƒŠ[ƒX

+

@

+

@SeraphyScriptDialog‚ÌŒãŒp‚Æ‚µ‚ÄSeraphyScriptTools‚ªì¬‚³‚ê‚Ü‚µ‚½B
+SeraphyScriptDialog‚Ƃ͈قȂéƒIƒuƒWƒFƒNƒg‚Ō݊·«‚Í‚ ‚è‚Ü‚¹‚ñ‚ª‹£‡‚à‚ ‚è‚Ü‚¹‚ñB

+

@

+ + + + diff --git a/Help/instance.htm b/Help/instance.htm new file mode 100644 index 0000000..d6e2577 --- /dev/null +++ b/Help/instance.htm @@ -0,0 +1,144 @@ + + + +Instance + + + + + + + + + + +

Instance@ƒCƒ“ƒXƒ^ƒ“ƒX

+
+

+

@‚±‚̃IƒuƒWƒFƒNƒg‚́ASeraphyScriptTools‚ðŽg‚¢WSH‚ɑΘb‹@”\‚ðŽ‚½‚¹‚éê‡‚É•K—v‚Æ‚È‚éA‚¢‚­‚‚©‚̃IƒuƒWƒFƒNƒg‚ðŽ©“®¶¬‚µŠÇ—‚·‚邽‚߂̃IƒuƒWƒFƒNƒg‚Å‚·B

+

@‘½‚­‚̏ꍇ‚́A‚±‚ÌInstanceƒIƒuƒWƒFƒNƒg‚ðÅ‰‚ɐ¶¬‚µA‚±‚±‚©‚çƒEƒBƒ“ƒhƒE‚Ȃǂ̃IƒuƒWƒFƒNƒg‚ðŠÇ—‚·‚é‚Æ•Ö—˜‚Ȃ悤‚ɍì‚ç‚ê‚Ä‚¢‚Ü‚·B

+

@

+

+

VBScript‚̏ꍇ

+

Dim Instance
+Set Instance = CreateObject( "SeraphyScriptTools.Instance")

+

"SeraphyScriptTools.Instance"‚Æ‚¢‚¤ProgID‚Å‚·B

+

ƒIƒuƒWƒFƒNƒg‚𐶐¬‚·‚é‚ƁAŽ©“®“I‚ɃƒCƒ“ƒtƒŒ[ƒ€AƒRƒ‚ƒ“ƒ_ƒCƒAƒƒO‚ª‰Šú‰»‚³‚ê‚Ü‚·B

+

@

+

+

ŽqƒIƒuƒWƒFƒNƒgŠÖ˜A

+

MainFrame

+

@ƒƒCƒ“ƒtƒŒ[ƒ€‚ðŽ¦‚·AOverlappedWindowƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@ŽQÆê—p‚Å‚·B
+

+

Dialog

+

@ƒƒCƒ“ƒtƒŒ[ƒ€‚ðeƒEƒBƒ“ƒhƒE‚É‚à‚‚悤‚ɏ‰Šú‰»‚³‚ꂽCommDialogƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@ŽQÆê—p‚Å‚·B

+

@

+

ƒEƒBƒ“ƒhƒE‘S”Ê

+

WaitCursor

+

@ƒEƒFƒCƒgƒJ[ƒ\ƒ‹‚ðŠÇ—‚µ‚Ü‚·B
+@‚·‚ׂĂÌOverlappedWindow‚ɃEƒFƒCƒgƒJ[ƒ\ƒ‹‚ðÝ’è‚·‚é‚Ì‚Æ“¯‚¶Œø‰Ê‚ª‚ ‚è‚Ü‚·B

+

@

+

SeraphyScriptToolsŒÅ—L

+

Version

+

@‚±‚ÌSeraphyScriptTools‚̃o[ƒWƒ‡ƒ“‚ð‚ ‚ç‚킵‚Ü‚·B

+

@

+

ƒ†[ƒeƒŠƒeƒB

+

PosX
+PosY

+

@Œ»Ý‚̃}ƒEƒXˆÊ’u‚ðƒXƒNƒŠ[ƒ“À•W‚Å•Ô‚µ‚Ü‚·B
+

+

Keyboard ( VK )

+

@VK‚ÅŽw’肵‚½‰¼‘zƒL[ƒR[ƒh‚ð‚à‚ƒL[‚ªŒ»Ý‰Ÿ‚³‚ê‚Ä‚¢‚é‚©”»’肵‚Ü‚·B

+

@

+

+

ƒIƒuƒWƒFƒNƒg‚̐¶¬

+

CreateFrame

+

@V‚µ‚¢ƒtƒŒ[ƒ€‚ðì¬‚µAOverlappedWindowƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@V‚µ‚¢ƒtƒŒ[ƒ€‚̓^ƒXƒNƒo[‚ɃLƒƒƒvƒVƒ‡ƒ“‚ð‚à‚ƒEƒBƒ“ƒhƒE‚Å‚·B

+

@•Ô‚³‚ꂽƒIƒuƒWƒFƒNƒg‚ðƒXƒNƒŠƒvƒgã‚̕ϐ”‚Å•ÛŽ‚µ‚‚¯‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB
+@ƒtƒŒ[ƒ€‚ÍInstanceƒIƒuƒWƒFƒNƒg‚ªŠÇ—‚µ‚‚¯‚Ä‚¢‚Ü‚·B
+@ƒXƒNƒŠƒvƒg‚©‚ç‚ÌŽQÆ‚ª1‚‚à‚È‚¢ƒtƒŒ[ƒ€‚ª~ƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ê‚é“™‚É‚æ‚Á‚Ä”ñ•\Ž¦‚É‚È‚Á‚Ä‚¢‚éê‡A‚‚¬‚ÌCreateFrameƒƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚½‚Æ‚«‚Ƀƒ‚ƒŠã‚©‚ç”jŠü‚³‚ê‚Ü‚·B

+

@

+

ƒEƒBƒ“ƒhƒEŠÇ—

+

WaitEvent timeout

+

@‚±‚̃IƒuƒWƒFƒNƒg‚©‚琶¬‚³‚ꂽƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒEA‚¨‚æ‚сAƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒE‚ªŒÂX‚ɏŠ—L‚·‚éŽqƒEƒBƒ“ƒhƒE‚ɑ΂·‚郁ƒbƒZ[ƒWˆ—‚ðˆêŠ‡‚µ‚čs‚¢‚Ü‚·B
+@Timeout‚̓ƒbƒZ[ƒW‚ª‚­‚é‚Ü‚Å‘Ò‹@‚·‚鎞ŠÔ‚ðƒ~ƒŠ•b‚ÅŽw’肵‚Ü‚·B
+@È—ª‚µ‚č\‚¢‚Ü‚¹‚ñBÈ—ªŽž‚Í1000A‚‚܂è1•bŠÔ‘Ò‚¿‚Ü‚·B
+@0‚ðŽw’è‚·‚é‚Æ–³ŒÀ‚É‘Ò‚¿‚Ü‚·B

+

@–ß‚è’l‚̓Cƒxƒ“ƒg‚𔭐¶‚³‚¹‚½OverlappedWindowƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@’ʏí‚́A‚±‚Ì•Ô‚³‚ꂽƒIƒuƒWƒFƒNƒg‚ð—˜—p‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB
+

+

@

+
+

+

ƒIƒuƒWƒFƒNƒg‚𐶐¬‚µAƒtƒŒ[ƒ€ƒEƒBƒ“ƒhƒE‚ð•\Ž¦‚µAƒ†[ƒU[‚ªu•Â‚¶‚évƒ{ƒ^ƒ“‚ðƒNƒŠƒbƒN‚·‚é‚Ü‚Å‘Ò‹@‚·‚éƒvƒƒOƒ‰ƒ€‚́A‚‚¬‚̂悤‚É‚È‚è‚Ü‚·B

+ + + + +
+

Option Explicit@c‡@
+
+ Dim Obj
+ Set Obj = WScript.CreateObject("SeraphyScriptTools.Instance")@c‡A
+
+ Obj.MainFrame.Open "SIMPLE-WINDOW"@c‡B
+
+ While Not Obj.MainFrame.Quit@c‡C
+ Obj.WaitEvent
+ WEnd

+

Set Obj = Nothing@c‡D

+
+

s à–¾ t

+

‡@@Option Explicit

+

‚±‚ê‚́AVBScript‚Å’è‹`‚³‚ê‚Ä‚¢‚È‚¢•Ï”‚ðŽg‚¤‚ƃGƒ‰[‚ª‚Å‚«‚é‚悤‚É‚·‚é‚à‚Ì‚Å‚·B
+ƒGƒ‰[‚ð‘òŽR”­¶‚µ‚â‚·‚­‚·‚邱‚ƂŁAƒvƒƒOƒ‰ƒ€ƒ~ƒX‚ð‚Í‚Á‚«‚肳‚¹‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+•K{‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªA‚±‚ê‚ð‹Lq‚·‚邱‚Ƃ𐄏§‚µ‚Ü‚·B
+

+

‡A@uSeraphyScriptTools.Instancev‚ÌActiveXƒIƒuƒWƒFƒNƒg‚̐¶¬‚Å‚·B
+@ ƒIƒuƒWƒFƒNƒg‚Ì‘ã“ü‚́A‚·‚ׂÄSet‚ōs‚í‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB
+@ƒIƒuƒWƒFƒNƒg‚ÍŽQÆ‚³‚ê‚Ä‚¢‚é‚©‚¬‚èA‚»‚ÌŽÀ‘͉̂ð•ú‚³‚ê‚Ü‚¹‚ñB

+

‡B@ ƒCƒ“ƒXƒ^ƒ“ƒXƒIƒuƒWƒFƒNƒg‚ÌObj‚́A¶¬‚³‚ꂽŽž“_‚ÅMainFrame‚Æ‚¢‚¤OverlappedWindowƒIƒuƒWƒFƒNƒg‚𐶐¬‚µ‚ăvƒƒpƒeƒB[‚Æ‚µ‚L‚µ‚Ä‚¢‚Ü‚·B
+@‚±‚ÌMainFrameƒIƒuƒWƒFƒNƒg‚ɑ΂µ‚āAOpenƒƒ\ƒbƒh‚ðŽÀs‚µ‚Ü‚·B
+@Openƒƒ\ƒbƒh‚̓EƒBƒ“ƒhƒE‚̃^ƒCƒgƒ‹‚ðÝ’肵‚āAƒEƒBƒ“ƒhƒE‚ðì¬E•\Ž¦‚µ‚Ü‚·B

+

‡C@‚±‚ꂪƒƒbƒZ[ƒWƒ‹[ƒv‚Æ‚¢‚¤‚à‚Ì‚Å‚·B
+@MainFrameƒIƒuƒWƒFƒNƒg‚ÌQuitƒvƒƒpƒeƒB[‚ªFalsei‹Uj‚Å‚ ‚é‚©‚¬‚èAƒƒbƒZ[ƒW‚ðˆ—‚µ‚‚¯‚Ü‚·B
+@‚±‚ÌQuitƒvƒƒpƒeƒB[‚Ƃ̓EƒBƒ“ƒhƒE‚́~ƒ{ƒ^ƒ“ +‚ª‰Ÿ‚³‚ꂽ‚Æ‚«‚È‚Ç‚ÉTruei^j‚Æ‚È‚è‚Ü‚·B

+

‡D@•Ï”Obj‚ÉŽQÆ‚µ‚Ä‚¢‚éƒIƒuƒWƒFƒNƒg‚𖾎¦“I‚ɉð•ú‚µ‚Ü‚·B
+@‚±‚̃vƒƒOƒ‰ƒ€‚Ì—á‚Å‚ÍVBScript‚́A‚±‚Ì‚ ‚ƏI‚í‚è‚Ü‚·‚̂ŁA‚í‚´‚í‚´–¾Ž¦‚·‚é•K—v‚Í‚ ‚è‚Ü‚¹‚ñB
+@‚µ‚©‚µAŽÀÛ‚̃vƒƒOƒ‰ƒ€‚Å‚Í–Y‚ê‚Ä‚Í‚È‚ç‚È‚¢ˆ—‚Å‚·B

+

@

+ + + + diff --git a/Help/is.gif b/Help/is.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d1a338fbae2d752756fa3c9219a2373ffcafef2 GIT binary patch literal 1823 zcma*i>sJ$J0)X*%CKHlLKm$e~Ad(Qwg^0y3m`=dH?e{k6f9eHjSvJ{wgOvA+%9HM|ARi?e;=Okh%oWr_7H#r zh5)eJ?Ka!|`}ZHm#%yoi%nc3w_Vnq$`}^m*yQd#K7;kI)wXt#P=FPX)uTR$2j#pQ| ztgIX>D;q5-8Pe(A=HTyQK4{2$`$;mI2%C4O|2V-KM zMMn?Ff)7}gvd+`DpRpGb5|DD2^Iy4mb&ELJCjVPY_@plBNa=RQF&_{(uV zB4j354g&rZe?9>RJ0?Lk23N%d#L>>J(1dZ%6#A|X{Ok<3uJfKs;7k={K?VhX$Pl%~ z(8zV6!1q+)0o!{9+XK$az1-Zm9IlXX-xlk2z{|_KV1H~}L{#Kfc}!W{-gq9UFXRXV_eZA-`Mgv=zx4X1fO?)cll!%|%#gy%k@+6xadtDkIlir&n1aB7FAkc7 zTyNhk?rz?^{oak6?o74@Ub|t8Yo2UsHcTBvz@pAyrd}6px2CUdn59KX;v)it2YOCa zdoGsKN~z8S(M`W`rP6o>?ku3YYQBjg&vbHK{KS?$b3sr1j*)8nJSX~<5*I2!(q=}w zui6>KdinoeEO07R3Qs2KvFj|q<6*&CaeKxPYmr7=kvlvlKeNzXiZPp3b%=Kv&e~v} zZusu9uVz89SRLViNmjCNLS+qw06+F_vr=yYFybIs%2qDdz=aeh-lxFFdQWrxU8gH> z2+5-#S<|YRg&r3;?@rf=S7=CjzMB~P~&d_4~y3MU#L`IxhONps;;ev z4CCfYQPo@Tw|w|z_;%WxrJ9>XD1OtRFy3$d_@9aAX%FPRS`uJMwHx$pZS#NFYStDZ z5V-8j7s#t2M{83R;^8i<`toI#?|h`cyEs#II{BvBQ%?AhXkdC z@CoR0ti1hDc7QVklo-}7n20|vEik8oT)K{CXDy^mAUxU!XfvO50p~w-%PdLSN z!(^ajND!t~y$cSS5?AGm^d?^+Vmeht@t2QV&qO!cE*@g4PEpP(YM)i-xSH5-$zTK^ z6`3P&_z>JYji1+EaUU|> zJE}ol`Vjz~9Evv?s3&02)FDB(%3cKozKYl9fye^gIu^16qWQd|Uu-c$^i*|_QCx*i zRfv))^{=wMNaWvpf7S#gcqXFXwY?Mw;q`K&>!p`C46^W!lZf6(n0Wuvy`hbL ziYh{a1|1U}xCyuh-&ZqJo+B#}!j8W>{49M51m{+(r{D24kJk0jLpukf%@ne=ICJBb zvD*0rIKRW#(K)b8-Z8=pO1w)T&8E4sW$xzjSI@iKB?!C^yrA~iJQ1sHgzQFEPn>17 zFl1}G^7{d_-fkNkEH)F1EqgGjLYu)S9xq&v-OXBZ;kyQ+$NOk-mRrJesRK{}XOtOY znE!olld%h3d103N&8zZ^qd8jbG?cRmw~l?B?)l7%st{7Jz~WZE{nKpIL2V}U6xks= z7mzpSub~T^k`^T6Jxl-@qj8vF^6Xk~gy^_suZMU^HbMu#Dq_}JV ztHM^%6?;gs<_^b;BC&4yTZC`JNd4~ss@|NmYZRl6NSxjmVjh@A<6DQZ(y?4Oo=79Y z@FFchwr|Fv67?n5RO}(OWw=d}U~wE#gfAV2%2)Q~dZkz}s>cd?eXD&WusMY|(pO3> z+^8?i!ADqIE#wo586Ufdihdda(n_4(R6(qraxbJSN*5$8>Ou80U8s`d!s8UVn3C?h zrU>ExQrpk=v+u7rK6Be{#pwEme6&uBl*)HgZe=;`XiMUjp340Y%l^T~x8`*Doq?D> z36Y`FhmuoFlfO!N6i0rKxye(vcRQf1%tw^QIlg)mc^JpK(q;d|FU?&wdSOF};9gdGWV}>N= zHH`S20Q3^Z`6hwL;h+wu$4&uih%ttN1Ht-g9Y*poKQf3$Iory}YnLMI%Kqe~VYWoB n15Dm|q@T+xjijs!&byq=q>nNU#jzfmcQfzn6=aM7z`Fkfsr&2S literal 0 HcmV?d00001 diff --git a/Help/lc.gif b/Help/lc.gif new file mode 100644 index 0000000000000000000000000000000000000000..418511152c64a370bb993fbca48d1294d4f606e3 GIT binary patch literal 2251 zcma)-`y4g;=F*r;w%j&bvk*((&aBZ;noE+`Wg{g?BYH_r-%T<~&F~(b zE~X|UMJkHYcSNO5D7PF+ce=bebt>In=RNQEGQ0kw(N5XSnOGOa{B459JX4SQfYQBmKoI$ z5_hiEx!l$KmMnxbg8w+kJ|cFYQk@;0SqhuAkq#LS4)mhb$f%%@;81aRMbyR(42lUB z0D|o*wtEB1k>#Emmd;`_wy@dh4Q-qT2A$%(i!Q29VdRQj@)(W@6uP6!702)*cTPkm z%5tW=tg)fe8L9NvfD1EM+#Am}M_rm}yHx)s69*P_zkV}WwC-8@(sS>LLH-+p*vyO@ z`>Sm!V&Y-zC0&Xh(%Dnm=3c={C5a->55XQfw8y7E4~@alDCHS$!dQwnzEP#i*=||ITz(mVpHK}?fymKpXIhp<>-xtJT>fZ z1XjyVkv6A_`f#qR|JAj7FmC!ur4-gA74oBUASN!h7{IEX)-zfyNhA2xFc_~OIfUZ7 z%F{EyCT8cb=@5_zC3=QdMRUr|2w$bEQL0ZcupU?zyV_V;#bPctWMN33p6_DA$rJ#Q zloT0EVus@jG+et9z0Pz~h~qj=G(Zf@MUr{{P(Y%sEFrC6bQiob-k{4Wvf1@6yH1_S z-kGXK;*Sizhel>=HetSYGe@sQz>*i z-O}>S8%R626<^(9(|ts=#3acFJ>;R|*Ve?t+-+H>`@WEjntIiWTnzFxqv`T-a>LC7 z4L~rwxSHvupXZ?3Q5GwYHE5|C@Whh8j|uSPy}^kCt>!=6nMHPLFCy*n4hSFqll`L3 zh0+=M-I<+g*COC39uL1 zsUAbf@3&8P;#jv`;e`15`MMS>AG9$$BGgBJ4X5!zaZaJjyg|U)B6vCD%2&DDc^8`& z;`Eyhpke3!>$ zig(05d!+Pku+X^X`-D&ooTw`~E@!ds&59f^iK4mUocir}Iq}K}>?%e7p`HH449}M{ zbKQ!SNhh+7iinJ_ugYw)!dgV!i?KCf2KFl31@kG#NU=|GwgAD?5*2>+Ch%e>y`vQ> z-}uL^xcjkH7b~1O<~me>^(1E_>uR=@DdenzL20G-VXU}DJH=oevYuy+`WF=jnQ8@V$WE`*K-7AgJLR9CfG!ec`?x{?&&z0a~?{ZCdYV;V# zl$&hb`;xY)69kOM4WfW1*T2v=Zx+d|*j;1$zjxDI#vWq~%V5q#BJrVQo0A6`?K>v6 zVVv&P+;O2sK9$fsY5x*y?`^VRE7D8B2xeS&gj?uUDYDJ>|!{M3!7KY+r=L zG)D6QFa(et?cgeqd@ih6K}co6Y`?C3b>~s*n_)1A@d>lY(7!5x25TbM!zL=iT~k?VZD^U|FFI5ubaO!7TdD=gY>D;l7Wh2YI{1Fz@~?vr2ryXw E7af6+ng9R* literal 0 HcmV?d00001 diff --git a/Help/make.gif b/Help/make.gif new file mode 100644 index 0000000000000000000000000000000000000000..5eab5c0cc44f4c9994db2ca9bf5a269567029890 GIT binary patch literal 1989 zcmaja>0i zeZnh`G^wmCoejy3_3Y40+nvyH&6=icYC6n~`OIIi&+G4-=iBws{M8v&fC!8NfXn6j z^y$mTkMnQde4Lq?d-m+j$jHp_@bkVt=gphXy1U1&T^ng{A8TtHs;RkavGkre@lUh) z-tpsii;KI8imvN)S5+#zQh8IUynN`8Ehnc{q3F!cK9`wUCzIJyQqD*uP4V$n63HpC zxI8MVR3NYlg(Yj(ns~e_E?3WBsHs#XfnX*Qk1ku5@8_3?MjJ4g92jgb0I0r#z`*~D z_!$Dl0-*r&FZkCJ;O-Kr6apLsteM^{AY)CC=kKcOz2KU$j-Fx~ z8g~EI2g!cfs+Ogh{kWtCI0g&e#i0e?HZ-?{$fU83$mVl9)++v3a~|s`sJK_1rhZ%+ zF+`nse5r%2533%GCQVl-g0SqkKCGKuH{cceIME<8ba< zp*{=JNsq(XGAr_mlumTp1m?)Wgm45H>79Z;r`;{SPN>)x_e6vA7no~P4v1z!)uQ4h zHEzBT#w?VVujp~-KvDo8Zpb-XXO2c{H3U1y4yDLbz#h!36fpcyNap}sRLt4Z zUdkbM2SW!v$}%`EElQDq^{A{bJ1ZWA#JDsbe1x!PUvPa;FNoJU{v0JQSj*B9_RhhM zAye!QD@5x7xV6U>UFcRm8DjwpN6BvhX1>jOcGBT|acOF(YXE6<6o(#(5V#T4J&!JEK(MV> z6{1mJWm~&>9X`zEHYrN=ntZOz4{jZs_`UT|(M~z4{iGhtt~&zEe2FG> zqM02Va|eHP5#MX7LKdVWKyG2*?*j*i2p+3^YT`$3v$fZcrfZsj@A1TFSxfYc%)0PF-PNdELW;8)0d+^t+k*GY|iv zDqVd*u6(MxYCLxxWR<0R$<*M?QOCDEcA1a#BrGyX<0%EU+88~5NTPgNKq?wGUj=$_ zs$+GMD+c1HvX=l(xVO$;qC!n;lRAp9i#M4KvGQ~Y1Q@+%2S73PWKX^dZIFXS5}gN} zjEP}Fs3gg41;MJ`(e0_~j}f|y9~xm{0#0Z$hL%%n#60;0T_f{FggWtwj6kK=zG>Q^iaMs=V zd`04d1OQnq0C8LOrux`gXpv=CdQyGm`VkS7x>_h}&-6jUE4)qj1n%A!i?S8lA!-W9 z{p%9cl^Z2=u0%+&l@Dvf$gQ1c;9a5frTh8hOUJ5O#a!8VtUT}X@a(Hy!$rskCsqcY LmjGoN09gAcgK#zr literal 0 HcmV?d00001 diff --git a/Help/meslop.gif b/Help/meslop.gif new file mode 100644 index 0000000000000000000000000000000000000000..11aae6fca3fe5c7e501d4882623fa43430df490d GIT binary patch literal 10205 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 literal 0 HcmV?d00001 diff --git a/Help/met.gif b/Help/met.gif new file mode 100644 index 0000000000000000000000000000000000000000..943916d71934f2d22865dc81f43f6df0a2006be3 GIT binary patch literal 1813 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 NiBB>qnRpBk@qdwEE1LiS literal 0 HcmV?d00001 diff --git a/Help/objects.htm b/Help/objects.htm new file mode 100644 index 0000000..07cfbda --- /dev/null +++ b/Help/objects.htm @@ -0,0 +1,70 @@ + + +ƒIƒuƒWƒFƒNƒg‚ÌŽí—Þ + + + + + +

SeraphyScriptTools‚̃IƒuƒWƒFƒNƒg

+
+

SeraphyScriptTools‚ɂ́A‚¢‚­‚‚©‚̃IƒuƒWƒFƒNƒg‚ª‚ ‚è‚Ü‚·B

+

‚Æ‚­‚ɁA‚‚¬‚̃IƒuƒWƒFƒNƒg‚̓_ƒCƒŒƒNƒg‚ɐ¶¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+ +

@

+

Instance ƒCƒ“ƒXƒ^ƒ“ƒX

+

@SeraphyScriptTools‚ÌŠî–{ƒIƒuƒWƒFƒNƒg‚Æ‚È‚è‚Ü‚·B
+ @•K{‚Å‚Í‚ ‚è‚Ü‚¹‚ñ‚ªA’ʏí‚́A‚±‚̃IƒuƒWƒFƒNƒg‚ðÅ‰‚ɍ쐬‚µ‚Ü‚·B
+ @ƒtƒŒ[ƒ€‚̃ƒbƒZ[ƒWˆ—“™‚ðŠÈ—ª‰»‚µ‚Ü‚·B

+

@ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒOAƒI[ƒo[ƒ‰ƒbƒuƒEƒBƒ“ƒhƒEAƒLƒƒƒ“ƒoƒX‚ÍŽ©“®“I‚ɍ쐬‚³‚ê‚Ä‚¨‚èA‰Šú‰»‚³‚ê‚Ä‚¢‚Ü‚·B
+ @InstanceƒIƒuƒWƒFƒNƒg‚̃vƒƒpƒeƒB[‚Æ‚µ‚ăAƒNƒZƒX‰Â”\‚Å‚·B

+

£

+

CommDialog ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒO

+

@’P“ƂŃRƒ‚ƒ“ƒ_ƒCƒAƒƒOEƒIƒuƒWƒFƒNƒg‚𐶐¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+ @ƒtƒ@ƒCƒ‹‚ðŠJ‚­A–¼‘O‚ð‚‚¯‚Ä•Û‘¶AƒtƒHƒ‹ƒ_‚ÌŽQÆA‚Æ‚¢‚Á‚½ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒO‚ðŽg‚¦‚Ü‚·B

+

@’ʏí‚́AInstance‚ŏ‰ŠúÝ’肳‚ꂽƒIƒuƒWƒFƒNƒg‚ðŽg‚¤‚Ù‚¤‚ª•Ö—˜‚Å‚·B

+

£

+

OverlappedWindow ƒI[ƒo[ƒ‰ƒbƒvƒhƒEƒBƒ“ƒhƒE +

+

@’P“ƂŃtƒŒ[ƒ€‚𐶐¬‚Å‚«‚Ü‚·B
+ @‚µ‚©‚µAInstancce‚©‚çƒtƒŒ[ƒ€‚𐶐¬‚µ‚½ê‡‚̓tƒŒ[ƒ€‚ðInstance‚ªŠÇ—‚µ‚Ä‚¢‚Ü‚·‚ªA ’¼Ú¶¬‚µ‚½ê‡‚É‚ÍŠÇ—‚³‚ê‚Ü‚¹‚ñB

+

@’ʏí‚́AInstance‚©‚çƒIƒuƒWƒFƒNƒg‚©‚çŽg‚¤‚Ù‚¤‚ª•Ö—˜‚Å‚·B
+ @

+

£

+

Canvas ƒLƒƒƒ“ƒoƒX

+

@ƒLƒƒƒ“ƒoƒX‚Í’P“ƂŐ¶¬‚Å‚«‚Ü‚·‚ªA‚»‚̏ꍇ‚̓tƒŒ[ƒ€‚Æ‚ÌŠÖ˜A«‚ª‚ ‚è‚Ü‚¹‚ñB
+ @ƒtƒŒ[ƒ€‚̓Lƒƒƒ“ƒoƒX‚ðŽ©“®¶¬‚µ‚Ü‚·B

+

@ˆóü‚È‚Ç‚Ì‚½‚ß‚É’P“ƂŐ¶¬‚·‚邱‚Ƃ͉”\‚Å‚·B

+

£

+

Shell@ƒVƒFƒ‹

+

@ƒtƒ@ƒCƒ‹‚̃Rƒs[AˆÚ“®A‚²‚݂΂±A—š—ð‚ÉŠÖ‚·‚éA‚¢‚­‚‚©‚Ì‹@”\‚ð’ñ‹Ÿ‚µ‚Ü‚·B
+ @ƒtƒ@ƒCƒ‹‚Ì‹N“®A“Á’èƒfƒBƒŒƒNƒgƒŠ–¼‚̎擾‚È‚Ç‚às‚¢‚Ü‚·B

+

@WSH‚ÌFileSystemObjectŽ©g‚ªA‚©‚È‚è‹­—͂Ȃ̂ŁA‚±‚̕⏕“I‚È–ðŠ„‚É‚·‚¬‚Ü‚¹‚ñB

+

£

+

ObjectMap@˜A‘z”z—ñ

+

@•¶Žš—ñ‚ðƒL[‚Æ‚µ‚½˜A‘z”z—ñ‚ðƒTƒ|[ƒg‚µ‚Ü‚·B
+ @ƒvƒƒtƒ@ƒCƒ‹‚Ɛڑ±‚·‚邱‚Æ‚É‚æ‚èAƒvƒƒtƒ@ƒCƒ‹‚̈ꊇ“ǂݍž‚݁E‘‚«ž‚Ý‚ª‰Â”\‚Æ‚È‚è‚Ü‚·B

+

@ƒRƒ“ƒgƒ[ƒ‹‚âƒEƒBƒ“ƒhƒE‚́A‚±‚ÌObjectMapƒIƒuƒWƒFƒNƒg‚ðƒvƒƒpƒeƒB[‚Æ‚µ‚Ä‚à‚Á‚Ä‚¨‚èAƒRƒ“ƒgƒ[ƒ‹‚âƒEƒBƒ“ƒhƒE‚É‚©

+

@

+

ObjectVector@Ž©“®Šg’£ˆêŽŸŒ³”z—ñ

+

@ˆêŽŸŒ³”z—ñB’ʏí‚Ì”z—ñ‚©‚ç‚̍쐬‚ƁA’ʏí‚Ì”z—ñ‚ւ̏o—Í‚àƒTƒ|[ƒg‚·‚éB

+

£

+

PrivateProfile ƒvƒ‰ƒCƒx[ƒgƒvƒƒtƒ@ƒCƒ‹

+

@‰Šú‰»ƒtƒ@ƒCƒ‹(INI)‚𑀍삷‚éƒIƒuƒWƒFƒNƒg‚Å‚·B

+

£

+ + diff --git a/Help/objvector.htm b/Help/objvector.htm new file mode 100644 index 0000000..72eee78 --- /dev/null +++ b/Help/objvector.htm @@ -0,0 +1,110 @@ + + + + + + +ObjectVector Ž©“®Šg’£ˆêŽŸŒ³”z—ñƒIƒuƒWƒFƒNƒg + + + + + +

ObjectVector +Ž©“®Šg’£ˆêŽŸŒ³”z—ñƒIƒuƒWƒFƒNƒg

+
+

+

Ž©“®Šg’£‚·‚éˆêŽŸŒ³”z—ñƒIƒuƒWƒFƒNƒg‚Å‚·B

+

+

+

CreateVector

+

V‚µ‚¢Ž©“®Šg’£ˆêŽŸŒ³”z—ñƒIƒuƒWƒFƒNƒg‚𐶐¬‚µ‚Ü‚·B

+

Duplicate [index],[count]

+

Žw’肵‚½€–Ú‚©‚çAŽw’肵‚½ŒÂ”‚Ü‚Å‚Ì—v‘f‚ðƒRƒs[‚µ‚½V‚µ‚¢ƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B

+

Clear

+

”z—ñ‚ðƒŠƒZƒbƒg‚µ‚Ü‚·B

+

Erase index

+

Žw’肵‚½€–Ú‚ðíœ‚µA‹l‚ß‚Ü‚·B

+

Push value

+

––”ö‚ɍ€–Ú‚ð’ljÁ‚µ‚Ü‚·B

+

value Pop

+

––”ö‚©‚獀–Ú‚ðŽæ“¾‚µA––”ö‚ðØ‚è‹l‚ß‚Ü‚·B

+

Insert index,value

+

Žw’肵‚½€–ڂɐV‚½‚ɍ€–Ú‚ð‘}“ü‚µ‚Ü‚·B

+

Value ( index )

+

Žw’肵‚½€–Ú‚ðÝ’èEŽæ“¾‚µ‚Ü‚·B

+

Merge obj

+

Ž©“®Šg’£ˆêŽŸŒ³”z—ñ‚©AVARIANTŒ^‚ÌSAFEARRAYiVBS‚Ì•W€‚̈ꎟŒ³”z—ñj‚ð”z—ñ‚Ì––”ö‚ɒljÁ‚µ‚Ü‚·B

+

array MakeArray

+

VARIANTŒ^‚ÌSAFEARRAYiVBS‚Ì•W€‚̈ꎟŒ³”z—ñj‚ðì¬‚µ‚Ä•Ô‚µ‚Ü‚·B

+

—ñ‹“ƒvƒƒpƒeƒB

+

For EachƒXƒe[ƒgƒƒ“ƒg‚Å‘S—v‘f‚ð—ñ‹“‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+


+

+
+

ObjectMap ˜A‘z”z—ñ

+
+

+

+

+

Value ( key ) ƒvƒƒpƒeƒB

+

Žw’肵‚½ƒL[‚̃vƒƒpƒeƒB‚ðŽæ“¾EÝ’肵‚Ü‚·B
+Žæ“¾Žž‚ɃL[‚ª‘¶Ý‚µ‚È‚¯‚ê‚Îempty‚Æ‚È‚è‚Ü‚·B
+

+

countƒvƒƒpƒeƒB

+

€–ڐ”‚ð•Ô‚µ‚Ü‚·B

+

+

Clear ƒƒ\ƒbƒh

+

˜A‘z”z—ñ‚ð‰Šú‰»‚µ‚Ü‚·B

+

Duplicateƒƒ\ƒbƒh

+

‚Ü‚Á‚½‚­“¯ˆê‚̘A‘z”z—ñ‚ðì¬‚µ‚Ä•Ô‚µ‚Ü‚·B

+

CreateMap

+

‹ó‚̘A‘z”z—ñ‚ðì¬‚µ‚Ä•Ô‚µ‚Ü‚·B

+

FindNear ( key )

+

keyˆÈã‚́Akey‚Æ“™‚µ‚¢‚©A‚à‚Á‚Æ‚à‹ß‚¢€–Ú‚ð’T‚µo‚µ‚Äkey–¼‚ð•Ô‚µ‚Ü‚·B

+

NearValue ( key )

+

keyˆÈã‚́Akey‚Æ“™‚µ‚¢‚©A‚à‚Á‚Æ‚à‹ß‚¢€–Ú‚Ì‚à‚Â’l‚ð•Ô‚µ‚Ü‚·B

+

ret ExpandVariables text , [mode]

+

ƒL[–¼‚ð%`%‚ň͂ñ‚¾•¶Žš‚ðŠÜ‚Þ•¶Žš—ñ‚ð‚킽‚µA‚»‚̍€–Ú‚Ì’l‚ð‘ã“ü‚µ‚½•¶Žš—ñ‚ð•Ô‚µ‚Ü‚·B
+mode‚ð0ˆÈŠO‚É‚·‚é‚ƁA˜A‘z”z—ñ‚É‘¶Ý‚µ‚È‚¢ƒL[‚͊‹«•Ï”–¼‚©‚ç‘{‚µ‚Ü‚·B
+‚Ç‚±‚É‚àƒL[–¼‚ª‘¶Ý‚µ‚È‚¢ê‡‚́A‚±‚Ì•”•ª‚Í‹ó‚É‚È‚è‚Ü‚·B

+

IsExist ( key ) ƒvƒƒpƒeƒB

+

Žw’肵‚½ƒL[‚ª‘¶Ý‚·‚é‚©ƒ`ƒFƒbƒN‚µ‚Ü‚·B

+

Erase key

+

Žw’肵‚½ƒL[‚ðíœ‚µ‚Ü‚·B

+

—ñ‹“ƒvƒƒpƒeƒB

+

For EachƒXƒe[ƒgƒƒ“ƒg‚Å—ñ‹“‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B
+—ñ‹“‚³‚ê‚é‚̂̓L[–¼‚Å‚·B

+

SaveProfile obj

+

Žw’肵‚½ƒZƒNƒVƒ‡ƒ“ƒIƒuƒWƒFƒNƒg‚ɑ΂µ‚ď‘‚«ž‚Ý‚ðs‚¤

+

LoadProfile obj

+

Žw’肵‚½ƒZƒNƒVƒ‡ƒ“ƒIƒuƒWƒGƒNƒg‚ɑ΂µ‚ēǍž‚Ý‚ðs‚¤

+

@

+ + + + diff --git a/Help/ov.gif b/Help/ov.gif new file mode 100644 index 0000000000000000000000000000000000000000..162995bf7dac328e39da895ba3e2df44f43d05e6 GIT binary patch literal 1792 zcma*i`(Kjx0>JSv@Ic@d6cJ4Y6byxwk?VA^(<9#SvLq`-vqCUuOAF0jd8+_#csrtL zR-?qc%+f7&&eFC*6fa?EHJz46(QbB@$u@Vg)){;4KRBPC-@kl9!$P)fO;i9Hm;}IV zHm|MyZ)L^2vhx1Li?#XrcaxK=4<5W5A79q%O?U6Ux^w4kPtThhHx|DB`gL>jtNQw< zYW0hnnrBs2Qd>7h4V7m#M!gsxw*3^PCSuHXQa}5$B&O5JvuFsOo>E;@$o-K zM?c!V`=LN^Cp>(d$Gaa8aBJH(!=_DR98Q;)*D#Hyr&8OUoCffCEgs*3!`%Vk;-3g4 z_&=h(htNc@39$dRe?I|?8J0=;Z0E|6ri{_lZS@9uP*QkvjL%ONw|OPu4B|a{NZO{_ zwxwsIS?p?MN-d!?!7JwaX9qi{7@lqff>SEPhfQHpocA9PQJkC@9t>8s^Pwb)oI;`1 zD??T_j{l0-UgYWGh?j{efmAejn7bQRdho;w0 zhu=nD%pU5y@JnH#xP#r&y}G|=!q$>g8(B_HY)C3PD2c9-G|+;Is>f#+K9CpB;Ye=y z<=^T;V*|}4VkrDgY}M5g2xxv#5(a)!?h=LcJu4oDx*cLZ6_SUSr$SkjkS1a4&o-re zxBr|@J#j4pYwhvRp~v0vd&WTQoa3z9MuuLehd8Z zziBfAiFbEVXSqvb>eFqcifmcF1&K>tt~DTPR*VB>l*%BTnB?I0rKDfxzlI>r8tM0p)oKOceRXa6^>XJtTr+m0y$pZ zEuncvYs)>zbG+PEB+RqiT(s4*TI?1!h_lA_)6aPg#Sb#-x=VEt>+}}+b+<}!3Z$pP z^rjWaW?p{B)vDS%co$5HeS1C-c#u&11hz!;sAd#~+$uXJ=d=opJsbO`fz{(j*bO&% znhslwJ!e#g+RiH+#0~n0v|q27p}42NUV|IYA_edbo}b3_ z&2)>4SpO(xat`&ZK;Toa^p1NDIPF;qO{kUj@Bq))epLUVRwc){OcfSOI-jr$S}49_ z?gVrwuF0dv#1pa#G(R$3FVCVPir0U?PjTuq za~RTU!xb0_zF42W*v`$o#v2Z*Gbx;29}yuFB$5vcU5@Gy-DII7jgG;!0p2C=Ow;Cv zP8WXDVL+Ct3b(U*qiEof?ua>~2i0;d*^(YP!9hB<%5wE~sa3j~p1j3F?Wo9(0+n>i zGE?<yFh&-5xeL%*El$F=LDlS<2uif~SYi(~K7p zIB-*o#EBjpUV8;Ft5JR*3|48+V__s+BeP^`5G0ZI9#xAV`^%2`=L3vr0znwmAXrOZ z-jBq~!1MW!MJK=?Co!Au&Kv@ShT@NWs%^&vOcJWBcN+Vx9a>=*cYIJdEM_w&;E3sf za{q)zD13H~&XpEtEqM_BSTndnUAF#NBFKd>B+Of=lVr+w{w@r_(lrA?t0o&SX<%4U zie2$u^C0xEY`}=tVkG4at`e(YOc7t%sP{n68xzqJ_|i*}!IsC<|84n}E-xqtQKtk4 z+_^JWv>YRPemW4HAyx=PE2uf{u;=N9Y5`VvlD#Hz=%Vs@@nNjrIr8oPA`jFSDr6Xm z@cOhPc%$$zl%MeY;iBq1t6hsqumItLuZ;2!Rwi=tannqsU*2NM zvo5X6%iYM$&@U)=Y(PjbRq+)k8fl}Fx#_#CD@`2o&l6Qek=}T@FfqgRvI?AVFOfTR0zcUPYK*QGq7xyo{Vy + + +OverlappedWindow + + + + + + + + + +

OverlappedWindow

+
+

+

@‚±‚̃IƒuƒWƒGƒNƒg‚̓EƒBƒ“ƒhƒEŽ©g‚Å‚ ‚èAƒEƒBƒ“ƒhƒE‚Ì•\Ž¦‚Ɛ§Œä‚ðs‚¢‚Ü‚·B

+

@InstanceƒIƒuƒWƒFƒNƒg‚É‚ÍŽ©“®“I‚ɍ쐬‚³‚ꂽOverlappedWindowƒIƒuƒWƒFƒNƒg‚ªAuMainFramev‚Æ‚¢‚¤ƒvƒƒpƒeƒB‚Å‘¶Ý‚µ‚Ü‚·B

+

+

‡@@’¼Ú¶¬‚·‚é•û–@

+

Dim Obj
+Set Obj = WScript.CreateObject("SeraphyScriptTools.OverlappedWindow")

+

"SeraphyScriptTools.OverlappedWindow"‚ªProgID‚Æ‚È‚è‚Ü‚·B
+•¡”ŒÂì¬‚µ‚½ê‡‚ɂ́A‚»‚ꂼ‚ê‚́Aƒ^ƒXƒNƒo[‚ɕʁX‚̃EƒBƒ“ƒhƒE‚Æ‚µ‚Ä•\Ž¦‚³‚ê‚Ü‚·B

+

‡A@InstanceƒIƒuƒWƒFƒNƒg‚ÌMainFeameƒIƒuƒWƒFƒNƒgƒvƒƒpƒeƒB‚ðŽg‚¤•û–@

+

InstanceƒIƒuƒWƒFƒNƒg‚͏‰ŠúÝ’èÏ‚Ý‚ÌOverlappedWindowƒIƒuƒWƒFƒNƒg‚ðMainFrame‚Æ‚¢‚¤ƒvƒƒpƒeƒB–¼‚ŏŠ—L‚µ‚Ä‚¢‚Ü‚·B
+’ʏíAƒƒCƒ“ƒEƒBƒ“ƒhƒE‚́A‚±‚¿‚ç‚ðŽg‚¤‚Æ•Ö—˜‚Å‚·B

+

‡B@InstanceƒIƒuƒWƒFƒNƒg‚ÌCreateFrameƒƒ\ƒbƒh‚ðŽg‚¤•û–@

+

ƒ^ƒXƒNƒo[‚É•\Ž¦‚³‚ê‚é•ÊƒEƒBƒ“ƒhƒE‚ðInstanceƒIƒuƒWƒFƒNƒg‚©‚çì¬‚Å‚«‚Ü‚·B
+‚»‚ꂼ‚ê‚̃EƒBƒ“ƒhƒE‚ªƒ^ƒXƒNƒo[‚É•\Ž¦‚³‚ê‚Ü‚·B

+

‡C@OverlappendWindowƒIƒuƒWƒFƒNƒg‚ÌCreateChildƒIƒuƒWƒFƒNƒg‚ðŽg‚¤•û–@

+

ì¬‚³‚ê‚éƒIƒuƒWƒFƒNƒg‚ÍOverlappedWindowƒIƒuƒWƒFƒNƒg‚Å‚·‚ªAeŽqŠÖŒW‚ª‚ ‚èAƒ^ƒXƒNƒo[‚É‚Í•\Ž¦‚³‚ê‚Ü‚¹‚ñBì¬‚à‚Æ‚É‚È‚Á‚½ƒIƒuƒWƒFƒNƒg‚ƈꏏ‚ɐ؂è‘Ö‚í‚è‚Ü‚·B

+

Žqƒ_ƒCƒAƒƒO‚ðì¬‚·‚éê‡‚È‚Ç‚Å—˜—p‚µ‚Ü‚·B

+

£

+
+

+

ref@Open@[caption]

+

@‚Ü‚¾ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¢‚Ì‚È‚çì¬‚µAƒEƒBƒ“ƒhƒE‚ð•\Ž¦‚µ‚Ü‚·B
+@caption‚̓EƒBƒ“ƒhƒE‚̃^ƒCƒgƒ‹‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+

@ Openƒƒ\ƒbƒh‚̌Ăяo‚µ‚Ì”@‰½‚É‚©‚©‚í‚炸AƒEƒBƒ“ƒhƒE‚ð•K—v‚Æ‚·‚郁ƒ\ƒbƒhAƒvƒƒpƒeƒB‚ðŒÄ‚яo‚µ‚½ê‡‚É‚ÍŽ©“®“I‚ɃEƒBƒ“ƒhƒE‚͍쐬‚³‚ê‚Ü‚·Bi‚½‚¾‚µA”ñ•\Ž¦‚Ì‚Ü‚Ü‚Å‚·Bj
+@‚µ‚©‚µA‚±‚̃ƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚ăEƒBƒ“ƒhƒE‚𖾎¦“I‚ɍ쐬‚·‚邱‚Æ‚ðƒIƒXƒXƒ‚µ‚Ü‚·B

+

@–ß‚è’l‚ÍŽ©•ªŽ©g‚ð•Ô‚µ‚Ü‚·B
+@‚µ‚½‚ª‚Á‚āA‚±‚ÌOpenƒƒ\ƒbƒh‚Ì–ß‚è’l‚ð‚‚©‚Á‚ĘA‘±“I‚Ƀƒ\ƒbƒh‚̌Ăяo‚µ‚ª‰Â”\‚Å‚·B

+

@

+

Close

+

@ƒEƒBƒ“ƒhƒE‚ð•Â‚¶‚Ü‚·B
+@ˆê“xì¬‚³‚ꂽƒEƒBƒ“ƒhƒE‚̓IƒuƒWƒFƒNƒg‚ª”jŠü‚³‚ê‚é‚Ü‚Å”jŠü‚³‚ê‚邱‚Æ‚Í‚ ‚è‚Ü‚¹‚ñB
+@Close‚Í”ñ•\Ž¦‚É‚È‚èAQuitƒvƒƒpƒeƒB‚ªTruei^j +‚É‚È‚è‚Ü‚·B

+

@

+

ref@SetWindowStyle frame , [captionbar] , [max_min]

+

@ƒEƒBƒ“ƒhƒE‚̃Xƒ^ƒCƒ‹‚ðÝ’肵‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ª¶¬Ï‚Ý‚Å‚ ‚ê‚Î’¼‚¿‚É”½‰f‚µ‚Ü‚·B‚»‚¤‚Å‚È‚¯‚ê‚΍쐬Žž‚ÉŽg—p‚³‚ê‚Ü‚·B

+

@frame +‚̓tƒŒ[ƒ€iƒEƒBƒ“ƒhƒE˜gj‚̃Xƒ^ƒCƒ‹‚ðŽw’肵‚Ü‚·B
+@Truei^j ‚ŃTƒCƒY•ÏX˜gAFalsei‹Uj‚ŌŒè˜g‚É‚È‚è‚Ü‚·B
+
+@captionbar‚́AƒEƒBƒ“ƒhƒEƒLƒƒƒvƒVƒ‡ƒ“AƒVƒXƒeƒ€ƒƒjƒ…[‚Ì—L‚è–³‚µ‚ðŽw’肵‚Ü‚·B
+@ƒVƒXƒeƒ€ƒƒjƒ…[‚ðŽ‚Â‚ÆŽ©“®“I‚ɃTƒCƒY‰Â•ÏƒEƒBƒ“ƒhƒE‚É‚©‚í‚è‚Ü‚·B
+@0 = ƒLƒƒƒvƒVƒ‡ƒ“ƒo[‚ª‚ ‚è‚Ü‚¹‚ñB
+@1 = ƒLƒƒƒvƒVƒ‡ƒ“‚ ‚è
+@2 = ƒVƒXƒeƒ€ƒƒjƒ…[‚ ‚è

+

@max_min‚͍ő剻EÅ¬‰»ƒ{ƒ^ƒ“‚ÌŽw’è‚ðs‚¢‚Ü‚·B
+@Å‘剻EÅ¬‰»ƒ{ƒ^ƒ“‚ð‚à‚‚Ǝ©“®“I‚ɃVƒXƒeƒ€ƒƒjƒ…[‚ðŽ‚¿‚Ü‚·B
+@0 = ‚È‚µ
+@1 = Å¬‰»
+@2 = Å‘剻
+@3 = Å¬‰»EÅ‘剻

+

@ƒƒ\ƒbƒh‚Ì–ß‚è’l‚ÍŽ©•ªŽ©g‚ð•Ô‚µ‚Ü‚·B
+@‚‚¯‚ăƒ\ƒbƒh‚ðŒÄ‚яo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

@

+

ref@SetPlacement@[x] , [y] , [width] , [height]

+

@ƒEƒBƒ“ƒhƒE‚Ì”z’u‚ðŽw’肵‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ª¶¬Ï‚Ý‚Å‚ ‚ê‚Î’¼‚¿‚É”½‰f‚µ‚Ü‚·B‚»‚¤‚Å‚È‚¯‚ê‚΍쐬Žž‚ÉŽg—p‚³‚ê‚Ü‚·B

+

@x‚Æy‚̓EƒBƒ“ƒhƒE‚Ì•\Ž¦ˆÊ’u‚ðŽw’肵‚Ü‚·B
+@widthAheight‚Í•‚ƍ‚‚³‚ðŽw’肵‚Ü‚·B

+

@ƒƒ\ƒbƒh‚Ì–ß‚è’l‚ÍŽ©•ªŽ©g‚ð•Ô‚µ‚Ü‚·B

+

@

+

obj@CreateChild

+

@Œ»Ý‚̃EƒBƒ“ƒhƒE‚ɏŠ—L‚³‚ê‚éŽqƒtƒŒ[ƒ€EƒIƒuƒWƒFƒNƒg‚𐶐¬‚µ‚Ü‚·B
+@¶¬‚³‚ꂽOverlappedWindowƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@ŽqƒtƒŒ[ƒ€‚́Aƒ^ƒXƒNƒo[‚ɃLƒƒƒvƒVƒ‡ƒ“‚ð‚à‚¿‚Ü‚¹‚ñB
+@‚Ü‚½e‚ªClose‚³‚ê‚é‚ƁAŽq‚àClose‚³‚ê‚Ü‚·B

+

SetFocus

+

@ƒEƒBƒ“ƒhƒE‚ɃtƒH[ƒJƒX‚ð—^‚¦‚Ü‚·B

+

SetForgroundWindow

+

@ƒEƒBƒ“ƒhƒE‚ɃL[ƒ{[ƒh“ü—ÍŒ ‚ð—^‚¦‚ç‚ê‚é‚悤‚ÉŽŽ‚Ý‚Ü‚·B

+

SetMenu format

+

@ƒEƒBƒ“ƒhƒE‚Ƀƒjƒ…[‚ðì¬‚µ‚Ü‚·B
+@format‚ÉŽw’肳‚ꂽ•¶Žš—ñ‚ð‰ðŽß‚µAƒƒjƒ…[‚ðì¬‚µ‚Ü‚·B
+@‘Ž®‚͂‚¬‚Ì‚Æ‚¨‚èB

+

@/ƒOƒ‹[ƒv–¼1,ƒƒjƒ…[€–Ú1,2,3/ƒOƒ‹[ƒv–¼2,ƒƒjƒ…[€–Ú1

+

@Å‰‚Ɂu^v‚©‚çŽn‚Ü‚éƒOƒ‹[ƒv–¼‚ð’è‹`‚µ‚Ü‚·B
+@‚‚¬‚Ƀƒjƒ…[€–Ú‚ð’è‹`‚µ‚Ü‚·Bƒƒjƒ…[’è‹`‚́uCiƒJƒ“ƒ}jv‚É‚æ‚Á‚Ä‹æØ‚ç‚ê‚Ü‚·B
+@ƒJƒ“ƒ}‚Ì‚©‚í‚è‚Ɂu;iƒRƒƒ“ +jv‚Å‹æØ‚é‚ƃƒjƒ…[‹æØ‚è‚É‚È‚è‚Ü‚·B
+@Å‰‚̃Oƒ‹[ƒv‚ª100”ԁAŽŸ‚̃Oƒ‹[ƒv‚ª200”Ô‚Æ‚¢‚¤‚悤‚ÉID”ԍ†‚ª˜A”Ԃ¯‚ç‚ê‚Ü‚·B

+

@—á)
+@SetMenu "/FILE,NEW,OPEN,SAVE,SAVE AS;EXIT/EDIT,COPY,CUT,PASTE/HELP,HELP"

+

@‚±‚̏ꍇANEWƒRƒ}ƒ“ƒh‚ð‘I‚Ô‚Æ100”ԁAPASTE‚ð‘I‚Ô‚Æ202”Ԃ̃Rƒ}ƒ“ƒh”ԍ†‚ŃCƒxƒ“ƒg‚ª”­¶‚µ‚Ü‚·B

+

@format‚ð‹ó‚É‚µ‚Ä“n‚·‚ƁAƒƒjƒ…[‚ªíœ‚³‚ê‚Ü‚·B

+

CheckMenu@cmdno , mode

+

@ƒƒjƒ…[‚ɃŒ“_ƒ}[ƒN‚ð‚‚¯‚½‚èAÁ‚µ‚½‚肵‚Ü‚·B
+@cmdno‚ªƒRƒ}ƒ“ƒh”ԍ†‚ðŽw’肵‚Ü‚·B
+@mode‚ªFalse‚Å‰ðœATrue‚ŃŒ“_‚ð‚‚¯‚Ü‚·B

+

EnableMenu cmdno , mode

+

@ƒƒjƒ…[‚ð—LŒøE–³Œø‰»‚µ‚Ü‚·B
+@cmdno‚ªƒRƒ}ƒ“ƒh”ԍ†Amode‚ªTrue‚Å—LŒøAFalse‚Å–³Œø‰»‚Æ‚È‚è‚Ü‚·B
+@CheckMenu‚Æ•¹—p‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñBi‰ðœ‚³‚ê‚Ü‚·Bj

+

returnvalue TrackPopupMenu format , offset

+

@ÅŒã‚ɃCƒxƒ“ƒg‚𔭐¶‚³‚¹‚½ƒ}ƒEƒXˆÊ’u‚Å”CˆÓ‚̃|ƒbƒvƒAƒbƒvƒƒjƒ…[‚ð•\Ž¦‚µ‚Ü‚·B
+@format‚́A€–Ú–¼‚ðƒJƒ“ƒ}‚Å‹æØ‚è‚Ü‚·B
+@offset‚̓Rƒ}ƒ“ƒhƒCƒxƒ“ƒg‚𔭐¶‚³‚¹‚½‚Æ‚«‚̃Rƒ}ƒ“ƒh”ԍ†‚̃Xƒ^[ƒg’l‚ðŽw’肵‚Ü‚·B
+@returnvalue‚̓|ƒbƒvƒAƒbƒvƒƒjƒ…[‚©‚çƒRƒ}ƒ“ƒh‚ð‘I‘ð‚µ‚½ê‡‚Í0ˆÈŠO‚Ì’l‚ª“ü‚è‚Ü‚·B

+

@‚½‚¾‚µAoffset‚É0‚ðŽw’è‚·‚é‚©AÈ—ª‚µ‚½ê‡‚̓Rƒ}ƒ“ƒhƒCƒxƒ“ƒg‚Í”­¶‚µ‚Ü‚¹‚ñB
+@‚©‚í‚è‚ɁAƒ|ƒbƒvƒAƒbƒvƒƒjƒ…[‚̍€–ڏ‡‚É1‚©‚çŽn‚Ü‚é”ԍ†‚©‚ç•Ô‚³‚ê‚Ü‚·B
+@ƒƒjƒ…[‚ª‘I‘ð‚³‚ê‚È‚©‚Á‚½ê‡‚Í0‚ª•Ô‚è‚Ü‚·B

+

@—á)
+@TrackPopupMenu "A,B,C"
+@‚±‚̏ꍇAB‚ð‘I‚Ô‚Æ2‚ª•Ô‚è‚Ü‚·B

+

@

+

SetTimer tim

+

@ƒ^ƒCƒ}[ƒCƒxƒ“ƒg‚ð‹N“®‚µ‚Ü‚·B
+@tim‚̓~ƒŠ•b’PˆÊ‚ÅŽw’肵‚Ü‚·B
+@0‚ðŽw’è‚·‚é‚ƃ^ƒCƒ}[‚ð’âŽ~‚³‚¹‚Ü‚·B
+@ƒ^ƒCƒ}[‚ÍŒJ‚è•Ô‚µ ƒCƒxƒ“ƒg‚𔭐¶‚³‚¹‚Ü‚·B
+@‘¼‚̃Cƒxƒ“ƒg‚ƈقȂ胆[ƒU[‚Ì‘€ì‚Æ‚ÍŠÖŒW‚È‚­Š„‚荞‚ñ‚ŃCƒxƒ“ƒg‚ª”­¶‚µ‚Ü‚·B
+@ƒ^ƒCƒ}[ƒCƒxƒ“ƒg‚É‚©‚¬‚èAEventƒvƒƒpƒeƒB[‚͐ݒ肳‚ê‚Ü‚¹‚ñBiˆÈ‘O‚̃Cƒxƒ“ƒg‚Ì‚Ü‚Ü‚Å‚·Bj
+@ƒ^ƒCƒ}[‚̐¸“x‚Í’á‚¢‚¤‚¦‚ɃXƒNƒŠƒvƒg‚̃ŒƒXƒ|ƒ“ƒX‚É‘å‚«‚­ˆË‘¶‚·‚é‚Ì‚Å’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B

+

long GetSysColor typ

+

@ƒVƒXƒeƒ€ƒJƒ‰[‚ðŽæ“¾‚µ‚Ü‚·Btyp‚̓VƒXƒeƒ€ƒJƒ‰[’è‹`’l‚Å‚·B
+@Win32API‚ÌGetSysColor‚»‚Ì‚à‚Ì‚Å‚·B

+

Refresh

+

@ƒEƒBƒ“ƒhƒE‚ðƒŠƒtƒŒƒbƒVƒ…‚µ•`‰æ‚µ‚È‚¨‚µ‚Ü‚·B
+@’ʏí‚́A‚Ù‚Æ‚ñ‚ÇŽg‚¤•K—v‚Í‚ ‚è‚Ü‚¹‚ñB

+

Draw

+

@CanvasƒIƒuƒWƒFƒNƒg +‚𒼂¿‚ɉæ–Ê‚É”½‰f‚³‚¹‚é‚Æ‚«‚ÉŽg‚¢‚Ü‚·B
+@‚±‚̃ƒ\ƒbƒh‚ðŒÄ‚яo‚³‚È‚¢ŒÀ‚èAŽ©“®“I‚É‚Í•`‰æ‚³‚ê‚Ü‚¹‚ñB

+

BOOL WaitEvent tim

+

@ƒƒbƒZ[ƒWƒ‹[ƒv‚ðŽÀs‚µAƒCƒxƒ“ƒg‚ª”­¶‚·‚é‚Ü‚ÅtimŽžŠÔ‚Ü‚Å‘Ò‹@‚µ‚Ü‚·B
+@ƒCƒxƒ“ƒg‚ª”­¶‚µ‚½ê‡ATrue‚ª•Ô‚è‚Ü‚·B
+@tim‚̓~ƒŠ•b’PˆÊ‚ÅŽw’肵‚Ü‚·B
+@‚à‚µAInstanceƒIƒuƒWƒFƒNƒg‚ðŽg‚Á‚Ä‚¢‚éê‡‚́AInstaceƒIƒuƒWƒFƒNƒg‚ÌWaitEvent‚ðŽg‚¤‚ƁA‚·‚ׂẴEƒBƒ“ƒhƒE‚ɑ΂µ‚ăƒbƒZ[ƒWƒ‹[ƒv‚𐳂µ‚­Žg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

short DoModal

+

@ƒƒbƒZ[ƒWƒ‹[ƒv‚Ì’èŒ^“I‚ȃ‹[ƒ`ƒ“‚ðŠÈ•Ö‚É‚·‚邽‚߂̃†[ƒeƒŠƒeƒB[ŠÖ”‚Å‚·B
+@Openƒƒ\ƒbƒh‚ðŒÄ‚яo‚µƒEƒBƒ“ƒhƒE‚ð•\Ž¦‚³‚¹AQuitƒvƒƒpƒeƒB[‚ªtrue‚É‚È‚é‚Ü‚ÅWaitEvent‚ðƒ‹[ƒv‚µ‚‚¯‚Ü‚·B
+@ƒ‹[ƒv‚©‚甲‚¯‚½‚çCloseƒƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚Ü‚·B
+@–ß‚è’l‚́AƒGƒ“ƒ^[ƒL[‚Å1AESCƒL[‚Å2A~ƒ{ƒ^ƒ“‚Å3‚ª•Ô‚è‚Ü‚·B
+@’Pƒ‚ȃ_ƒCƒAƒƒOƒ{ƒbƒNƒX‚Ì—˜—p‚ÉŽg‚¢‚Ü‚·B

+

LoadIcon path

+

path‚ÅŽw’肳‚ꂽƒAƒCƒRƒ“ƒtƒ@ƒCƒ‹‚ð“ǂݍž‚ñ‚ŃEƒBƒ“ƒhƒE‚ɃAƒCƒRƒ“‚ð“o˜^‚µ‚Ü‚·B

+

@

+

ver DoEvent

+

ƒCƒxƒ“ƒg‚ª‚ ‚éê‡‚́AƒCƒxƒ“ƒgƒR[ƒh‚ª•Ô‚è‚Ü‚·B
+AutoMessageLoop‚ªTrue‚Å‚ ‚éê‡‚́AWaitEvent‚ðŒÄ‚яo‚·‚ÆŽ©“®“I‚ɌĂ΂ê‚邽‚ߒʏí‚ÍŽg‚¢‚Ü‚¹‚ñB
+‚µ‚©‚µAƒCƒxƒ“ƒg‚ðˆ—‚Å‚«‚È‚¢ƒXƒNƒŠƒvƒgŠÂ‹«‚Å‚ÍŽ©•ª‚ŃCƒxƒ“ƒg‚ðˆ—‚·‚邽‚߂ɌĂяo‚·‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

@

+

£

+

@

+

+

ƒEƒBƒ“ƒhƒEŠÖ˜AƒvƒƒpƒeƒB

+

BOOL CreateNoCloseWindow

+

@•Â‚¶‚éƒ{ƒ^ƒ“i‚wƒ{ƒ^ƒ“j‚Ì‚È‚¢ƒEƒBƒ“ƒhƒE‚ðŽwŽ¦‚µ‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ªì¬‚µ‚Ä‚©‚çŽw’è‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚¹‚ñB
+@Truei^j ‚ŕ‚¶‚éƒ{ƒ^ƒ“‚ª‚È‚­‚È‚è‚Ü‚·B
+@•W€‚ÍFalse‚Å‚·B

+

BOOL AutoClose

+

@•Â‚¶‚éƒ{ƒ^ƒ“i‚wƒ{ƒ^ƒ“j‚ð‰Ÿ‚·‚ƁA‚½‚¾‚¿‚ɃEƒBƒ“ƒhƒE‚ðCloseƒƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚½ó‘Ô‚É‚·‚é‚©Žw’肵‚Ü‚·B
+@•W€‚ÍTruei^j‚Å‚·B
+

+

BOOL AcceptFiles

+

@ƒEƒBƒ“ƒhƒE‚Ƀtƒ@ƒCƒ‹‚̃hƒƒbƒv‚ð‹–‰Â‚·‚é‚©Žw’肵‚Ü‚·B
+@ƒhƒƒbƒv‚³‚ê‚é‚ƁAOnDropFilesƒCƒxƒ“ƒg‚ª”­¶‚µ‚Ü‚·B
+@•W€‚ÍFalsei‹Uj ‚Å‚·B

+

long Style
+long Exstyle

+

@ƒEƒBƒ“ƒhƒEƒXƒ^ƒCƒ‹AƒEƒBƒ“ƒhƒE‚ÌŠg’£ƒXƒ^ƒCƒ‹‚𒼐ڎwŽ¦‚Å‚«‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ªì¬Ï‚Ý‚È‚ç‚΁A‚½‚¾‚¿‚É”½‰f‚³‚ê‚Ü‚·B

+

BSTR ClassName

+

@ƒEƒBƒ“ƒhƒE‚̃Nƒ‰ƒX–¼‚ð•Ô‚µ‚Ü‚·B
+@’ʏíŽg‚¤‚±‚Æ‚Í‚È‚¢‚Å‚µ‚傤B

+

BOOL DoubleBuffer

+

@ƒ_ƒuƒ‹ƒoƒbƒtƒ@‚ʼnæ–Ê‚ð•`‰æ‚µ‚Ü‚·B
+@ƒ`ƒ‰ƒcƒL‚ð–h‚®‚½‚߂ɃXƒNƒŠ[ƒ“—pƒfƒoƒCƒXƒRƒ“ƒeƒLƒXƒg‚ð2‚ÂŽg‚¢A•`‰æ‚ªŠ®—¹‚µ‚Ä‚©‚çƒtƒŠƒbƒv‚µ‚Ü‚·B
+@•W€‚ÍTruei^j‚Å‚·B
+@ƒsƒNƒ`ƒƒ[‚ðŽg‚¤ê‡‚Í”ñí‚Ƀ`ƒ‰ƒcƒL‚ª‘å‚«‚­‚È‚é‚̂ŁAí‚ÉTrue‚É‚·‚ׂ«‚Å‚·B
+

+

BOOL Visible

+

@ƒEƒBƒ“ƒhƒE‚ð•\Ž¦E”ñ•\Ž¦‚³‚¹‚Ü‚·B
+@Truei^j‚É‚·‚é‚Æ‚«ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¢ê‡‚͍쐬‚µ‚Ü‚·B
+@False +i‹Uj‚É‚·‚é‚Æ‚«‚ɃEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚Ή½‚à‚µ‚Ü‚¹‚ñB

+

BOOL Enable

+

@ƒEƒBƒ“ƒhƒE‚Ì–³ŒøE—LŒø‚ðØ‚è‘Ö‚¦‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¢ê‡‚Í‚½‚¾‚¿‚ɍ쐬‚³‚ê‚Ü‚·B

+

short WaitCursor

+

@ƒEƒFƒCƒgƒJ[ƒ\ƒ‹‚ðŽw’肵‚Ü‚·B0‚̏ꍇ‚͒ʏíƒJ[ƒ\ƒ‹B
+@1ˆÈã‚Å‚ ‚ê‚΃EƒFƒCƒgƒJ[ƒ\ƒ‹‚ð•\Ž¦‚µ‚Ü‚·B
+@InstanceƒIƒuƒWƒFƒNƒg‚ÌWaitCursor‚ðŽg‚¤‚ƁA‘SƒEƒBƒ“ƒhƒE‚É“K—p‚Å‚«‚Ü‚·B

+

BOOL Iconic
+BOOL Zoomed

+

@ƒEƒBƒ“ƒhƒE‚̍ŏ¬‰»EÅ‘剻‚ðÝ’èEŽæ“¾‚µ‚Ü‚·B
+@False i‹Uj‚É‚·‚邃ʏí•\Ž¦‚É‚È‚è‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¢ê‡‚́A‚½‚¾‚¿‚ɍ쐬‚³‚ê‚Ü‚·B

+

BOOL TopMose

+

@ƒEƒBƒ“ƒhƒE‚ðÅ‘O–Ê‚É‚µ‚½‚èA‰ðœ‚µ‚½‚肵‚Ü‚·B
+@ƒEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¢ê‡‚́A‚½‚¾‚¿‚ɍ쐬‚³‚ê‚Ü‚·B

+

short PosX
+short PosY
+short Width
+short Height

+

@ƒEƒBƒ“ƒhƒE‚̈ʒuAƒTƒCƒY‚̐ݒèEŽæ“¾‚ª‚Å‚«‚Ü‚·B
+@‚܂Ƃ߂Đݒ肷‚éê‡‚́ASetPlacementƒƒ\ƒbƒh‚ðŽg‚¢‚Ü‚·B

+

long ClientWidth
+long ClientHeight

+

@ƒEƒBƒ“ƒhƒE‚Ì•`‰æ‰Â”\—̈æ‚̃TƒCƒY‚ðƒsƒNƒZƒ‹’PˆÊ‚Ŏ擾‚µ‚Ü‚·B
+@Žæ“¾‚̂݉”\‚Å‚·B

+

double innerWidth
+double innerHeight

+

@ƒEƒBƒ“ƒhƒE‚Ì•`‰æ‰Â”\—̈æ‚̃TƒCƒY‚ðƒ~ƒŠ’PˆÊ‚Å•Ô‚µ‚Ü‚·B
+@Žæ“¾‚̂݉”\‚Å‚·B

+

long backColor

+

@”wŒiF‚̐ݒèEŽæ“¾‚ª‚Å‚«‚Ü‚·B
+@"&H FFFFFF"‚ªƒzƒƒCƒg‚Æ‚È‚è‚Ü‚·B

+

BOOL Quit

+

@ƒEƒBƒ“ƒhƒE‚ªA‚Í‚¶‚߂č쐬‚³‚ꂽê‡AOpenƒƒ\ƒbƒh‚ð‚‚©‚Á‚½ê‡‚ÉFalse +i‹Uj‚ɐݒ肳‚ê‚Ü‚·B
+@Closeƒƒ\ƒbƒh‚Ü‚½‚́~ƒ{ƒ^ƒ“‚ª‚¨‚³‚ꂽê‡‚ÉTruei^j +‚É‚È‚è‚Ü‚·B
+@“à•”“I‚ɂ̓Cƒxƒ“ƒg”»’è‚Ȃǂ̃EƒBƒ“ƒhƒE‚Ì—LŒøƒ`ƒFƒbƒN‚ÉŽg‚í‚ê‚Ä‚¢‚Ü‚·B
+@ƒXƒNƒŠƒvƒg‚©‚ç•ÏX‚·‚邱‚Æ‚à‰Â”\‚Å‚·B
+@ƒƒbƒZ[ƒWƒ‹[ƒv‚©‚甲‚¯‚é”»’è‚È‚Ç‚ÉŽg‚¢‚Ü‚·B

+

BOOL AutoMessageLoop

+

@ƒƒbƒZ[ƒWƒ‹[ƒv‚Ì‚ ‚ƂŃCƒxƒ“ƒgˆ—‚ðŽ©“®“I‚ɍs‚¢‚Ü‚·B
+@WSH‚âHTMLˆÈŠO‚ŃCƒxƒ“ƒg‚ðˆ—‚Å‚«‚È‚¢ƒXƒNƒŠƒvƒgŠÂ‹«ã‚ł́AŽ©•ª‚сƒbƒZ[ƒW‚ðˆ—‚·‚é•K—v‚ª‚ ‚èA‚»‚̂悤‚È‚Æ‚«‚ÉFALSE‚É‚µ‚Ü‚·B
+

+

long HWND

+

@ƒEƒBƒ“ƒhƒEƒnƒ“ƒhƒ‹B“Ç‚ÝŽæ‚èê—p‚Å‚·B’ʏí‚ÍŽg‚í‚È‚¢‚Å‚­‚¾‚³‚¢B

+

safearray DropFiles

+

@ƒhƒƒbƒv‚³‚ꂽƒtƒ@ƒCƒ‹‚̃pƒX‚ðƒoƒŠƒAƒ“ƒg”z—ñ‚Å•Ô‚µ‚Ü‚·B
+@“Ç‚ÝŽæ‚èê—p‚Å‚·B

+

BOOL EmptyEvent

+

@ƒCƒxƒ“ƒg‚ª”­¶‚µ‚Ä‚¢‚È‚¢‚±‚Æ‚ðŽ¦‚µ‚Ü‚·B
+@“Ç‚ÝŽæ‚èê—p‚Å‚·B
+@’ʏí‚ÍŽg‚¢‚Ü‚¹‚ñB

+

short ExitCode

+

@OKACANCELAEXIT‚̏I—¹ƒR[ƒh‚ð1A2A3‚̐”’l‚ÅŽ¦‚µ‚Ü‚·B

+

£

+
+

ƒIƒuƒWƒFƒNƒgŠÖ˜AƒvƒƒpƒeƒB

+

obj@Canvas

+

@‚±‚̃EƒBƒ“ƒhƒE‚ª“à•”“I‚É‚à‚ÂCanvasƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@ƒxƒNƒ^[ƒOƒ‰ƒtƒBƒNƒX‚Ì•`‰æ‚́A‚±‚ÌCanvasƒIƒuƒWƒFƒNƒg‚ɑ΂µ‚Ä‘€ì‚µ‚Ü‚·B

+

obj Event

+

@ƒCƒxƒ“ƒg‚̏ڍׂȏî•ñ‚ð‚à‚ÂEventƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@‚ǂ̃{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽ‚Ì‚©HƒCƒxƒ“ƒg”­¶Žž‚̃}ƒEƒXˆÊ’u‚È‚Ç‚ð’m‚éê‡‚ÉŽg‚¢‚Ü‚·B
+

+

obj Form

+

@ƒRƒ“ƒgƒ[ƒ‹‚ðŠÇ—‚·‚éƒtƒH[ƒ€ƒIƒuƒWƒFƒNƒg‚ð•Ô‚µ‚Ü‚·B
+@ƒRƒ“ƒgƒ[ƒ‹‚̐¶¬‚␧Œä‚ðA‚±‚̃IƒuƒWƒFƒNƒg‚©‚çs‚¢‚Ü‚·B

+

obj Object ( X )

+

@OverlappedWindowƒIƒuƒWƒFƒNƒg‚ÉŠi”[‚³‚ê‚éAƒ†[ƒU[‚ªŽ©—R‚ÉŽg‚¦‚郊˜A‘z”z—ñB
+@OverlappedWindow‚Æ‚Æ‚à‚É•ÛŽ‚³‚ꂽ‚Ù‚¤‚ª“s‡‚Ì—Ç‚¢ƒf[ƒ^[‚ðŠi”[‚µ‚Ä‚¨‚­‚±‚Æ‚ª‚Å‚«‚Ü‚·B

+

obj ClassObject

+

@VBScript‚ÌClassƒIƒuƒWƒFƒNƒg‚ðŽw’肵‚Ü‚·B
+@‚±‚±‚ÅŽw’肳‚ꂽIDispatchƒCƒ“ƒ^[ƒtƒFƒCƒX‚ɑ΂µ‚āAƒCƒxƒ“ƒg‚ɑΉž‚µ‚½ƒƒ\ƒbƒh‚̌Ăяo‚µ‚ðs‚¢‚Ü‚·B
+@NULL‚ð“n‚·‚±‚ƂŁAƒNƒ‰ƒX‚ւ̐ڑ±‚ð‰ðœ‚µ‚Ü‚·B
+@ƒNƒ‰ƒX‚ªÚ‘±‚³‚ê‚Ä‚¢‚éŠÔ‚́AƒNƒ‰ƒX‚ÌŽÀ‘Ì‚ª‚È‚­‚È‚ç‚È‚¢‚±‚Æ‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B
+

+

BOOL AutoReleaseClassObject

+

@ƒEƒBƒ“ƒhƒE‚́~ƒ{ƒ^ƒ“‚ð‰Ÿ‚µ‚½‚Æ‚«ACloseƒƒ\ƒbƒh‚ðŒÄ‚яo‚µ‚½‚Æ‚«A‚ȂǃEƒBƒ“ƒhƒE‚ª•Â‚¶‚ç‚ꂽ‚Æ‚«‚ÉVBScript‚̃Nƒ‰ƒXƒIƒuƒWƒFƒNƒg‚ª‚ ‚ê‚΁A‚±‚ê‚ðƒŠƒŠ[ƒX‚µ‚Ü‚·B
+@ƒfƒBƒtƒHƒ‹ƒg‚ÍTRUE‚Å‚·B
+@‚±‚ê‚É‚æ‚Á‚ÄVBScript‚ł́AƒEƒBƒ“ƒhƒE‚ª•Â‚¶‚ç‚ꂽ‚Æ‚«ƒNƒ‰ƒX‚Ö‚ÌŽQÆ‚ª‚È‚­‚Ȃ邱‚Æ‚É‚æ‚èAŽ©“®“I‚ÉClass_TerminateƒCƒxƒ“ƒg‚ª”­¶‚µAƒEƒBƒ“ƒhƒE‚ð•Â‚¶‚½ê‡‚̏ˆ—‚Å‚«‚é‚悤‚É‚È‚è‚Ü‚·B
+@‚±‚̃ƒJƒjƒYƒ€‚ð—˜—p‚¹‚¸Aˆê“x•Â‚¶‚½ƒEƒBƒ“ƒhƒE‚ðÄ—˜—p‚·‚éê‡‚Ȃǂ́AFALSE‚ÉŽw’肵‚Ä‚¨‚«‚Ü‚·B
+@ƒNƒ‰ƒX‚ªÚ‘±‚³‚ê‚Ä‚¢‚éŠÔ‚́AƒNƒ‰ƒX‚ÌŽÀ‘Ì‚ª‚È‚­‚È‚ç‚È‚¢‚±‚Æ‚É’ˆÓ‚µ‚Ä‚­‚¾‚³‚¢B

+

£

+
+

+


+

+

s@WScript‚̃IƒuƒWƒFƒNƒgÚ‘±‚̏ꍇ@t

+

@WScript.ConnectObjectƒƒ\ƒbƒh‚ŁAOverlappedWindow‚̃Cƒxƒ“ƒg‚ðƒXƒNƒŠƒvƒg‚ɐڑ±‚µ‚Ü‚·B

+

@ƒCƒxƒ“ƒg‚ª”­¶‚·‚é‚ƁA????OnClick‚Æ‚¢‚¤ƒTƒuƒ‹[ƒ`ƒ“‚ªŽ©“®“I‚ɌĂяo‚³‚ê‚Ü‚·B
+@????‚́AConectObjectƒƒ\ƒbƒh‚Å”CˆÓ‚Ì–¼‘O‚ðŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B

+

@WScript‚̓Cƒxƒ“ƒgEƒnƒ“ƒhƒ‰‚Ɉø”‚ð‚à‚Ä‚é‚̂ŁA––”ö‚ÉEx‚ª‚‚­ƒCƒxƒ“ƒg‚ðƒnƒ“ƒhƒ‹‚·‚é‚Æ•Ö—˜‚Å‚·B
+@‚±‚ê‚ç‚̃nƒ“ƒhƒ‰‚͈ø”‚ɁAƒCƒxƒ“ƒg‚𔭐¶‚³‚¹‚½OverlappedWindowƒIƒuƒWƒFƒNƒg‚ª“n‚³‚ê‚Ü‚·B
+@ƒTƒuƒ‹[ƒ`ƒ“‚ł́AƒCƒxƒ“ƒg”­¶Œ¹‚Å‚ ‚éOverlappedWindow‚ɃAƒNƒZƒX‚µ‚â‚·‚­‚È‚è‚Ü‚·B

+

—á)
+@WScript.ConnectObject Obj , "EVENT_"

+

@‚½‚Æ‚¦‚΁AOnCommandExƒCƒxƒ“ƒg‚ðŽó‚¯Žæ‚é‚É‚Í

+

@sub EVENT_OnCommandEx ( wnd )
+@@@if (wnd.Event.Parameter =@EEE
+@@@EEE
+
@end sub

+

@‚̂悤‚ȃTƒuƒ‹[ƒ`ƒ“‚ð‘‚«‚Ü‚·B

+

s@VBScript‚ÌClassƒIƒuƒWƒFƒNƒg‚ð—˜—p‚·‚éê‡@t

+

@VBScript‚ÌClassƒIƒuƒWƒFƒNƒg‚ð—˜—p‚·‚éê‡‚́AOverlappedWindowƒIƒuƒWƒFƒNƒg‚ÌClassObjectƒvƒƒpƒeƒB‚ɁAClassƒIƒuƒWƒFƒNƒg‚ðŽw’肵‚Ü‚·B
+@ClassObjectƒvƒƒpƒeƒB‚̓IƒuƒWƒFƒNƒg‚Ì‘ã“ü‚ð‘O’ñ‚µ‚Ä‚¢‚Ü‚·‚ªAVBScript‚̕ϐ”‚Ö‚Ì‘ã“ü‚Å‚Í‚È‚¢‚̂ŁASETƒXƒe[ƒgƒƒ“ƒg‚Í•s—v‚Å‚·BiNothing‚Ì‘ã“ü‚à‚Å‚«‚Ü‚¹‚ñBj
+@ƒCƒxƒ“ƒg‚ª”­¶‚·‚é‚ƁAŽ©“®“I‚ɁuOnClickv‚È‚Ç‚Ì–¼‘O‚Å’è‹`‚³‚ê‚Ä‚¢‚éƒTƒuƒ‹[ƒ`ƒ“iƒƒ\ƒbƒhj‚ªŒÄ‚яo‚³‚ê‚Ü‚·B
+@Ex”ł̃ƒ\ƒbƒh‚Í‚ ‚è‚Ü‚¹‚ñB‚Ü‚½AInitWindowAExitWindow‚à‚ ‚è‚Ü‚¹‚ñB
+@‚±‚ê‚ç‚̓Nƒ‰ƒXŽ©g‚Ì‹@”\‚É‚æ‚Á‚ÄŽÀŒ»‰Â”\‚Å‚·B
+@ƒNƒ‰ƒX‚̃ƒ“ƒo[•Ï”‚ɁAOverlappedWindowŽ©g‚ð“ü‚ê‚Ä‚¨‚­‚ƃAƒNƒZƒX‚µ‚â‚·‚­‚Ȃ邽‚ß•Ö—˜‚Å‚·B
+@ŠJŽn‘OEI—¹Œãˆ—‚̓Nƒ‰ƒX‚Ìclass_initialize,class_terminate‚Ȃǂ̃Cƒxƒ“ƒg‚ð—˜—p‚µ‚Ü‚·B

+

—á)

+

@class OverlappedWindow
+@@private wnd
+@@public sub class_initialize
+@@@@set wnd = CreateObject("SeraphyScriptTools.OverlappedWindow")
+@@@@wnd.ClassObject = me
+@@@@wnd.DoModal
+@@end sub
+@@public sub OnClick
+@@@@EEE
+@@end sub
+@end class

+

@dim obj
+@set obj = new OverlappedWindow
+

+

‚±‚Ì—á‚Å‚Í OverlappedWindowƒNƒ‰ƒX‚̃IƒuƒWƒFƒNƒg‚𐶐¬‚µ‚Ü‚·B
+ƒNƒ‰ƒX‚ª¶¬‚³‚ê‚é‚ƁAInitialize‚ªŽ©“®“I‚ÉŽÀs‚³‚êAOverlappedWindowƒIƒuƒWƒFƒNƒg‚ª¶¬‚³‚ê‚Ü‚·B
+‚±‚̃IƒuƒWƒFƒNƒg‚ɃNƒ‰ƒXŽ©g‚ðˆÓ–¡‚·‚éumev‚ª“n‚³‚ê‚Ü‚·B
+‚»‚µ‚āAƒƒbƒZ[ƒWƒ‹[ƒv‚ðŠJŽn‚µ‚Ü‚·B
+ƒCƒxƒ“ƒg‚ª”­¶‚·‚é‚ƁAOnClick‚Ȃǂ̃ƒ\ƒbƒh‚ªŒÄ‚яo‚³‚ê‚Ü‚·B

+

@

+

mƒCƒxƒ“ƒg‚ÌŽí—ށn

+

OnClick
+OnClickEx window

+

@ƒEƒBƒ“ƒhƒE‚Ì’†‚ŃNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·B

+

@

+

OnRClick
+OnRClickEx window

+

@ƒEƒBƒ“ƒhƒE‚Ì’†‚ʼnEƒNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnDblClick
+OnDblClickEx window

+

@ƒ_ƒuƒ‹ƒNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnRDblClick
+OnRDblClickEx window

+

@‰Eƒ_ƒuƒ‹ƒNƒŠƒbƒN‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnSize
+OnSizeEx window

+

@ƒEƒBƒ“ƒhƒE‚̃TƒCƒY‚ª•ÏX‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnCommand
+OnCommandEx window

+

@ƒƒjƒ…[AƒRƒ“ƒgƒ[ƒ‹‚âƒ{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·
+@EventƒIƒuƒWƒFƒNƒg‚ÌParameter‚ɂ̓Rƒ“ƒgƒ[ƒ‹‚ÌID‚Ü‚½‚̓ƒjƒ…[ID‚ª“ü‚è‚Ü‚·B
+@

+

OnDropFiles
+OnDropFilesEx window

+

@ƒtƒ@ƒCƒ‹‚ªƒhƒƒbƒv‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnMouseMove
+OnMouseMoveEx window

+

@ƒ}ƒEƒX‚ª“®‚­‚Æ’Ê’m‚µ‚Ü‚·

+

@

+

OnClickOut
+OnClickOutEx window

+

@ƒ}ƒEƒXƒ{ƒ^ƒ“‚𗣂³‚ꂽ‚Æ‚«‚É’Ê’m‚³‚ê‚Ü‚·

+

@

+

OnRClickOut
+OnRClickOutEx window

+

@‰Eƒ}ƒEƒXƒ{ƒ^ƒ“‚ª—£‚³‚ꂽ‚Æ‚«‚É’Ê’m‚³‚ê‚Ü‚·

+

@

+

OnRClickCancel
+OnRClickCancelEx window

+

@‰Eƒ}ƒEƒXƒ{ƒ^ƒ“‚ª—£‚³‚ê‚é‘O‚ɃLƒƒƒ“ƒZƒ‹‘€ì‚ªs‚í‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnClickCancel
+OnClickCancelEx window

+

@ƒ}ƒEƒXƒ{ƒ^ƒ“‚ª—£‚³‚ê‚é‘O‚ɃLƒƒƒ“ƒZƒ‹‘€ì‚ªs‚í‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnTimer

+

@ƒ^ƒCƒ}[‚ð’Ê’m‚µ‚Ü‚·B
+@‚½‚¾‚µAƒ^ƒCƒ}[ƒCƒxƒ“ƒg‚̓Cƒxƒ“ƒgƒvƒƒpƒeƒB‚ðXV‚µ‚Ü‚¹‚ñB
+@‚Ü‚½AEx”ŃCƒxƒ“ƒg‚Í‚ ‚è‚Ü‚¹‚ñB

+

@

+

OnOK
+OnOKEx window

+

@ƒGƒ“ƒ^[ƒL[‚ª‰Ÿ‚³‚ꂽ‚©AID=1‚̃{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnCancel
+OnCancelEx window

+

@ƒGƒXƒP[ƒvƒL[‚ª‰Ÿ‚³‚ꂽ‚©AID=2‚̃{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·

+

@

+

OnExit
+OnExitEx window

+

@uƒEƒBƒ“ƒhƒE‚ð•Â‚¶‚éƒ{ƒ^ƒ“v‚©AID=3‚̃{ƒ^ƒ“‚ª‰Ÿ‚³‚ꂽ‚Æ‚«‚É’Ê’m‚µ‚Ü‚·B
+@Closeƒƒ\ƒbƒh“™‚ðŽÀs‚µ‚Ä‚àŒÄ‚яo‚³‚ê‚Ü‚¹‚ñB

+

OnKeydown
+OnKeydownEx window

+

@ƒEƒBƒ“ƒhƒEã‚ɃtƒH[ƒJƒX‚ª‚ ‚èAƒL[ƒ{[ƒh‚ª‰Ÿ‚³‚ꂽê‡‚ɃCƒxƒ“ƒg‚ª”­‚¹‚ç‚ê‚Ü‚·B
+@Parameter‚̓L[‚̉¼‘zƒR[ƒhAExtParameter‚ɂ̓VƒtƒgƒL[AƒRƒ“ƒgƒ[ƒ‹ƒL[‚̏ó‘Ô‚ª“ü‚è‚Ü‚·B

+

OnContextMenu
+OnContextMenuEx window

+

@ƒcƒŠ[ƒrƒ…[AƒŠƒXƒgƒrƒ…[ã‚ʼnEƒNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·B
+@Event‚ÌParameter‚ɂ̓Rƒ“ƒgƒ[ƒ‹‚ÌID‚ª“ü‚è‚Ü‚·B

+

OnContextDelete
+OnContextDeleteEx window

+

@ƒcƒŠ[ƒrƒ…[AƒŠƒXƒgƒrƒ…[ã‚ÅDELETEƒL[‚ª‰Ÿ‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚µ‚Ü‚·B
+@Event‚ÌParameter‚ɂ̓Rƒ“ƒgƒ[ƒ‹‚ÌID‚ª“ü‚è‚Ü‚·B

+

InitWindow

+

@ƒEƒBƒ“ƒhƒE‚ÌŽÀ‘Ì‚ª¶¬‚³‚ꂽ‚Æ‚«‚É”­¶‚·‚éƒCƒxƒ“ƒg‚Å‚·B
+@ClassƒIƒuƒWƒFƒNƒg‚̏ꍇ‚͌Ăяo‚³‚ê‚Ü‚¹‚ñB
+
+

+

ExitWindow

+

@ƒEƒBƒ“ƒhƒE‚ÌŽÀ‘Ì‚ª”jŠü‚³‚ꂽ‚Æ‚«‚É”­¶‚·‚éƒCƒxƒ“ƒg‚Å‚·B
+@ƒEƒBƒ“ƒhƒE‚Ì”jŠü‚̓IƒuƒWƒFƒNƒg‚Ì”jŠü‚Æ“¯Žž‚Å‚·B
+@ClassƒIƒuƒWƒFƒNƒg‚̏ꍇ‚͌Ăяo‚³‚ê‚Ü‚¹‚ñB

+

@

+

£

+

@

+

@

+

@

+ + + + diff --git a/Help/profile.htm b/Help/profile.htm new file mode 100644 index 0000000..9bb5630 --- /dev/null +++ b/Help/profile.htm @@ -0,0 +1,52 @@ + + + +Profile + + + + + + + + +

ƒvƒƒtƒ@ƒCƒ‹ ƒIƒuƒWƒFƒNƒg

+
+

[ƒZƒNƒVƒ‡ƒ“ƒIƒuƒWƒFƒNƒg]

+

Value ( X ) 

+

@X‚ðƒL[–¼‚Æ‚·‚é’l‚̎擾‚Ɛݒè‚ðs‚¢‚Ü‚·B
+@‘¶Ý‚µ‚È‚¢ê‡‚ÍEmpty‚ª•Ô‚è‚Ü‚·B

+

GetValue( X , def )

+

@X‚ðƒL[–¼‚Æ‚·‚é’l‚̎擾‚ðs‚¢‚Ü‚·B
+@‘¶Ý‚µ‚È‚¢ê‡‚Ídef‚Ì’l‚ªŽg‚í‚ê‚Ü‚·B

+

@

+
+

@

+ + + + diff --git a/Help/prop.gif b/Help/prop.gif new file mode 100644 index 0000000000000000000000000000000000000000..2ecf31bec7640899c7385dd91cb4d02d6669f493 GIT binary patch literal 1880 zcmaLS>sOKq0)X+C7v!emi(#U1c>zfTLPRrnyA0x`G-JWc%y9}+OIs_~(>gX|$yGos z(2OoxftQrhv^2G{0<{@yv^bMp$1|asU3N;X*<&+xa?kt&`+WX=dDbQ+#{4bY1~7mJ z0I;yI@bTlP`T0L*X6C1-XP-Tr85^6vckkt$JD!_2pY``Y>g^rt=y=rLe%EgQv94~Y zrsjslGHf>gSXFh+XuP7;_9&Ik^75PIDGa5g8WQK9I}%siEv zdO{{^mC24JC)XwSDGRtPeerMxLj3eXgQs3W-!W@EGZ?EOZ@!wL}D=p zQwRXcF9;C$zcKzmd69tS0RJ!b*AswV5G#ws6cnhQl8Zw~Ce+IhCz=RYbz@0VZeqv1 znc6L0def$ejQ%uc-Tm`XYdGI_JXzLDScBK0yh$_;kIQ9o3~&fXAmr=00+A@ZR>)&> zbovTzcsP~J7qD4yFdRgJ*a9kBDB@dSDwih|wp79pL~Z4Wge)G57JiLe&!SQ}p@$u` zI=#_!$XumaBE_fV%WP zL({O%6v*G2Rva@+^YRz0QnukMV6P4Tf za{IQM3+1C~LauyPF`$d3N@_Wp?Q9cydGNlB29*WsO3}?0fmVLz>W%|Ba!|WoT2B#7 zB1J~lWW3{S-s+bSd{rw=a;G2dlfZLX7sFya%MgLo1d*42PC1nk*XdTnSj-2ka*RW_KAMw(Ljlu2`wo-KU;?)ry8MuI*Jx1^aO%O z48qp@Nn>d6hhvb??hLM^6U1?#PZ^M-MTQ8ShgPLxgRp!l7-tSxDrN%F{#QJRr6CFl zqMW3ds!fw#X{-qxupL9AFUU+afyd$L6gr9JF0fj=XSGn8v z@^sm|pinF6YNr|lb+%e-7S}pjaba!+h{0gxVxI%)Z}K%5x8fz8;FdWtD+$UL2-Cgg z#ZhHy-$=N`BHVnAc-E~}3GN6s!{7UQ{J@`hQ zLRs-){2pLvo4M_Mx_;ni!gS^D8m}hG1cEXI4PKV;a3GpgOEL`go1tOP88$KbDZYK2vHZB{pKu})eMGcrN{^AZzi-GN49l>~jv075GcSp=z> zTg9+Zyqysfq~cZ}5x)GKUGA?d@FH1F`YI1XZ8w_4)r&S+oHRZ5R$sCWu}~|RJ@VKBn=7HLXs)UWgN6ii`4HF}iNvCt=MzPId50r0w6xx8m5r z`v~o%9>iM4P*{X?6En|WP`V`S( + + + + + + + + +
    +
  • + + + +
  • + + + +
      +
    • + + + +
    • + + + +
        +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      +
    • + + + +
        +
      • + + + +
          +
        • + + + +
        • + + + +
        +
      • + + + +
      +
    • + + + +
        +
      • + + + +
      • + + + +
      +
    • + + + +
    • + + + +
    • + + + +
    • + + + +
    +
  • + + + +
      +
    • + + + +
    • + + + +
    +
+ diff --git a/Help/seraphyscripttools.hhp b/Help/seraphyscripttools.hhp new file mode 100644 index 0000000..feb3dc8 --- /dev/null +++ b/Help/seraphyscripttools.hhp @@ -0,0 +1,29 @@ +[OPTIONS] +Compatibility=1.1 or later +Compiled file=seraphyscripttools.chm +Contents file=seraphyscripttools.hhc +Default Font=‚l‚r ƒSƒVƒbƒN,12,128 +Default topic=index.htm +Display compile progress=No +Language=0x411 “ú–{Œê +Title=SeraphyScriptTools + + +[FILES] +canvas.htm +control.htm +dialog.htm +event.htm +form.htm +howtocreate.htm +index.htm +instance.htm +objects.htm +objvector.htm +overlapped.htm +shell.htm +tree.htm +profile.htm + +[INFOTYPES] + diff --git a/Help/shell.htm b/Help/shell.htm new file mode 100644 index 0000000..fdbf404 --- /dev/null +++ b/Help/shell.htm @@ -0,0 +1,148 @@ + + + + + + + +Shell + + + + + + +

Shell@ƒIƒuƒWƒFƒNƒg

+
+

+

ƒVƒFƒ‹‚ÉŠÖ‚·‚é‘€ì‚ðs‚¤B
+‚·‚Å‚É’´‹­—Í‚ÈMSƒ³‚ÌFileSystemObject‚ª‚ ‚é‚̂ŁA‚»‚ê‚𑽏­•â‚¤’ö“x‚Ì‚à‚Ì‚Å‚ ‚éB

+

@

+

+

IsWindowsNTƒvƒƒpƒeƒB

+

WindowsNT/2000‚Å“®ì‚µ‚Ä‚¢‚ê‚Îtrue‚Æ‚È‚é

+

WindowsVersionƒvƒƒpƒeƒB

+

WindowsNT/2000‚̃o[ƒWƒ‡ƒ“‚ð•Ô‚·B
+Win9x‚Í0‚Æ‚È‚éB

+

ConfirmƒvƒƒpƒeƒB

+

ƒtƒ@ƒCƒ‹‚̍폜‚È‚Ç‚ðƒ†[ƒU[‚ÉŠm”F‚ð‹‚ß‚é‚©”Û‚©

+

SilentƒvƒƒpƒeƒB

+

ƒvƒƒOƒŒƒX‚ð•\Ž¦‚·‚é‚©”Û‚©

+

£

+

+

unk ShellExecute path , [parameter] ,[initdir] ,[window]

+

Žw’肵‚½ƒhƒLƒ…ƒƒ“ƒg‚Ü‚½‚ÍŽÀsƒtƒ@ƒCƒ‹‚ðŠJ‚­B
+ƒpƒ‰ƒ[ƒ^[‚ƃJƒŒƒ“ƒgƒfƒBƒŒƒNƒgƒŠ‚ÌŽw’肪‰Â”\B
+Windowsƒpƒ‰ƒ[ƒ^[‚Å•\Ž¦ƒXƒ^ƒCƒ‹‚ðŽw’è‚Å‚«‚éB
+0•s‰ÂŽ‹A1’ʏíA2Å‘åA3Å¬A4Å¬i”ñƒAƒNƒeƒBƒuj
+
+ƒvƒƒZƒXƒIƒuƒWƒFƒNƒg‚ð•Ô‚·B
+‘Ò‹@‚âI—¹’l‚ª•K—v‚È‚Æ‚«‚́A‚±‚̃IƒuƒWƒFƒNƒg‚ð—˜—p‚·‚éB
+

+

unk GetSoecialFolderLocation ƒƒ\ƒbƒh

+

˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ð•Ô‚·B“ÁŽêƒfƒCƒŒƒNƒgƒŠ‚ð—ñ‹“‚·‚éB
+ƒTƒ|[ƒg‚³‚ê‚Ä‚¢‚é“à—e‚ɂ‚¢‚Ă͊‹«‚É‚æ‚Á‚ĈقȂéB

+

ver GetDLLVersion path [, mode ]

+

Žw’肵‚½ŽÀsƒtƒ@ƒCƒ‹‚Ü‚½‚ÍDLL‚̃o[ƒWƒ‡ƒ“î•ñ‚ð•Ô‚·B
+mode‚ª0‚È‚çAu*.**vŒ`Ž®A0ˆÈŠO‚È‚çu**.**.**.**vŒ`Ž®‚Å•Ô‚·B

+

unk ParseName [filename]

+

ƒtƒ@ƒCƒ‹–¼‚ÌŠg’£Žq‚¾‚¯‚ð•ÏX‚µ‚½‚èAƒtƒ@ƒCƒ‹–¼‚¾‚¯‚ð•ÏX‚µ‚½‚è‚·‚é‘€ì‚ðŠÈ’P‚ɍs‚¤ƒIƒuƒWƒFƒNƒg‚ð•Ô‚·B

+

bool Copy from , to
+bool CopyRenameOnCollision from , to

+

ƒtƒ@ƒCƒ‹‚̃Rƒs[‚ðs‚¤B
+CopyRenameOnCollision‚̓tƒ@ƒCƒ‹‚̃Rƒs[æ‚Ì“¯ˆêƒtƒ@ƒCƒ‹–¼‚ª‚ ‚ê‚΃Šƒl[ƒ€‚µ‚ăRƒs[‚·‚éB
+from‚É‚ÍŽ©“®Šg’£ˆêŽŸŒ³”z—ñ‚©AVariantŒ^‚ÌSAFEARRAY”z—ñiVBS‚̒ʏí‚Ì”z—ñjA‚Ü‚½‚Í’P“Æ‚Ì•¶Žš—ñ‚ð“n‚·‚±‚Æ‚ª‚Å‚«‚éB

+

bool Move from , to

+

ƒtƒ@ƒCƒ‹‚̈ړ®‚ðs‚¤B
+from‚É‚ÍŽ©“®Šg’£ˆêŽŸŒ³”z—ñ‚©AVariantŒ^‚ÌSAFEARRAY”z—ñiVBS‚̒ʏí‚Ì”z—ñjA‚Ü‚½‚Í’P“Æ‚Ì•¶Žš—ñ‚ð“n‚·‚±‚Æ‚ª‚Å‚«‚éB

+

bool Delete

+

ƒtƒ@ƒCƒ‹‚̍폜‚ðs‚¤B
+from‚É‚ÍŽ©“®Šg’£ˆêŽŸŒ³”z—ñ‚©AVariantŒ^‚ÌSAFEARRAY”z—ñiVBS‚̒ʏí‚Ì”z—ñjA‚Ü‚½‚Í’P“Æ‚Ì•¶Žš—ñ‚ð“n‚·‚±‚Æ‚ª‚Å‚«‚éB

+

EmptyRecycleBin path

+

Žw’肵‚½ƒpƒX‚̃hƒ‰ƒCƒu‚É‘®‚·‚éƒSƒ~” ‚ð‹ó‚É‚·‚éB
+È—ª‚·‚é‚ƁA‚·‚ׂẴhƒ‰ƒCƒu‚ð‘Ώۂɋó‚É‚·‚éB

+

RecentDocs path

+

Žw’肵‚½ƒpƒX‚Ì—š—ð‚ðì¬‚·‚éB
+È—ª‚·‚é‚Æ—š—ð‚ðÁ‹Ž‚·‚éB

+

SetMainWindow obj

+

OverlappedWindowƒIƒuƒWƒFƒNƒg‚ðŽw’肵AƒƒCƒ“ƒEƒBƒ“ƒhƒE‚Æ‚µ‚Ä”FŽ¯‚³‚¹‚éB

+

@

+

£

+
+

ShellExecuteObject

+

+ShellExecute‚Å•Ô‚³‚ê‚éAƒvƒƒZƒX‚̏I—¹‘Ò‹@‚ðs‚¤ƒIƒuƒWƒFƒNƒg +

‚½‚¾‚µAƒGƒNƒXƒvƒ[ƒ‰‚âƒCƒ“ƒ^[ƒlƒbƒgƒGƒNƒXƒvƒ[ƒ‰‚Æ‚¢‚Á‚½A‚ ‚炽‚ȃCƒ“ƒXƒ^ƒ“ƒX‚ð‹N“®‚µ‚È‚¢ƒvƒƒZƒX‚ɑ΂µ‚ÄShellExecute‚ðs‚Á‚½ê‡‚ɂ́A‚±‚̃IƒuƒWƒFƒNƒg‚͈Ӗ¡‚ð‚à‚¿‚Ü‚¹‚ñB

+

+ShellƒIƒuƒWƒFƒNƒg‚ÌShellExecute‚ÌŒ‹‰Ê‚Æ‚µ‚Ä•Ô‚³‚ê‚éB +

+

ExitCode ƒvƒƒpƒeƒB

+

ƒvƒƒZƒX‚̏I—¹ƒR[ƒh‚ðŽæ“¾‚Å‚«‚éB

+

£

+

@

+

+

ret Wait tim

+

ƒvƒƒZƒX‚ªI—¹‚µ‚Ä‚¢‚È‚¯‚ê‚Îfalse‚ª‚©‚¦‚éB
+ƒvƒƒZƒX‚ªI—¹‚µ‚½‚©AƒvƒƒZƒXI—¹‚ª”»’f‚Å‚«‚È‚¢ê‡‚Ítrue‚ª‚©‚¦‚éB
+tim‚ÅŽw’肵‚½ƒ~ƒŠŽžŠÔ‚¾‚¯‘Ò‹@‚·‚éB
+ƒ}ƒCƒiƒX‚ðŽw’è‚·‚é‚Æ–³ŒÀ‚ɑ҂B

+

£

+

@

+
+

ParseName +ƒIƒuƒWƒGƒNƒg

+

+ƒtƒ@ƒCƒ‹–¼‚ð•ÏX‚·‚é‚Ì‚É“s‡‚Ì—Ç‚¢ƒIƒuƒWƒGƒNƒg +

+ShellƒIƒuƒWƒFƒNƒg‚ÌParseNameƒƒ\ƒbƒh‚É‚æ‚Á‚Ă̂ݍ쐬‚³‚ê‚éB +

+

PathNameƒvƒƒpƒeƒB

+

@‘ΏۂƂȂéƒtƒ‹ƒpƒX‚ðŽæ“¾EÝ’肵‚Ü‚·B

+

FileName ƒvƒƒpƒeƒB

+

@‚à‚Á‚Æ‚à––”ö‚̃tƒHƒ‹ƒ_ƒ}[ƒNˆÈ~‚ðŽæ‚èo‚µ‚½‚èAÝ’è‚Å‚«‚Ü‚·B

+

Extention ƒvƒƒpƒeƒB

+

@‚à‚Á‚Æ‚à––”ö‚̃tƒHƒ‹ƒ_ƒ}[ƒNˆÈ~‚́A‚à‚Á‚Æ‚à––”ö‚̏¬”“_ˆÈ~‚ðŽæ‚èo‚µ‚½‚èÝ’肵‚Ü‚·B
+@¬”“_‚ÍŠÜ‚Ü‚ê‚Ü‚¹‚ñB

+

NameƒvƒƒpƒeƒB

+

@‚à‚Á‚Æ‚à––”ö‚̃tƒHƒ‹ƒ_ƒ}[ƒNˆÈ~‚́A‚à‚Á‚Æ‚à––”ö‚̏­”“_‚Ü‚Å‚ðŽæ‚èo‚µ‚½‚èÝ’肵‚Ü‚·B
+@ƒtƒHƒ‹ƒ_ƒ}[ƒN‚Ə¬”“_‚ÍŠÜ‚Ü‚ê‚Ü‚¹‚ñB

+

DriveƒvƒƒpƒeƒB

+

@‚à‚Á‚Æ‚àÅ‰‚̃Rƒƒ“‚Ü‚Å‚ðŽæ‚èo‚µ‚½‚èAÝ’肵‚Ü‚·B
+@ƒRƒƒ“‚ðŠÜ‚Ý‚Ü‚·B
+

+

DirectoryƒvƒƒpƒeƒB

+

@ƒRƒƒ“ˆÈ~A‚à‚Á‚Æ‚à––”ö‚̃tƒHƒ‹ƒ_ƒ}[ƒN‚Ü‚Å‚Ì•¶Žš—ñ‚ð•Ô‚µ‚Ü‚·B
+@––”ö‚̃tƒHƒ‹ƒ_ƒvƒ}[ƒN‚ðŠÜ‚Ý‚Ü‚·B
+@Ý’è‚Í‚Å‚«‚Ü‚¹‚ñB

+

£

+

@

+

+

@

+ + + + diff --git a/Help/smp.gif b/Help/smp.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2c36aebe88e2903163754507fe31cca1fc2b8aa GIT binary patch literal 1849 zcmaLS|6h^^0>JSHfqFnhFf=T`JP0TO@=aEn)jbk2b=FaunRX40Gg7Byp4s#gA3#M( zNzF91#QcKao$0J*3pj4GZ|0e|+SxAcs%5oTv^6VNvDf~A`~3X=<@0f@EIcBu4WI%4 z1^}1K_2$iQuU{{}c=7u2W9R+*FJ@;S-@5hVwQKWNuH2uPxHCRJJ2Z4>U|`B@{AvbsY;K8o_`_Cy9!zn4P zJ9jq876)sq#hW#*Z$ip2lgHnb0@t39!B8Z$Th*ipl zZoR1AgDtPxB}|@33~IjJC*Hz3GW31uIB^SJk8!62usCcsomBxbSUdr@oXr!7`1O1a zlcg^&WApj`R4$K6ht@#86f%?N&lHHbCdi-7;S0JeAu`$D!V(GS9D0D6&u*dn`?Er- zdjguv4OPc$PL$U-G@fobd)9oev%9BnVCakUEIQFm;sLRs@2c5Q9Y3VJl5*MNNXNK; z!d^e1CdZy|U(HV@)W1|W7>g(|7o0%550iRRALNsY~r!Pk$2W{=>ira$5U-uVsq+p`z@XI1p znBy*~|9L0dA;5&pRll+)(_TvFiEBXbSxuUhM+qn%0ZVD`bSqENO7AVE75p?uK3w#b zqy2R*$+nxoKep-ZW{(@kU;F(j?1sWXavuQDs1os$c`ZrCTF_CFR111)Mg0*`gW(u0*3(CUV9<)fQk<%*C;0R_KO9W(sC@gen^?8S z?9M49*{ZU?_obcMhb*==iXCd3e(zw93NLQ7+E5-d5eHh2#a+10mzYec4JYycQo03p zI2SGAVrP$*FbZ$Qo3<1Joz$*rySDaod{#H{(h_3yjnZ*2Vhrc`uw%uuhk@u~Qa{== z2RKj`n!l(R0OVC!TBZ^~NR)ez?PDv&zE3S@8~&s0^AwR>TF|o#cy#>J8GPT^9enBi z?MukdpIrukWyJ)gAtKa+pnL*X|GfQLu9lw7#LzBrpATt)tT(oP-_uTR?=Sz|sIwkh ze;6SwopDw=W_EH_W%+~I3w=CSn(docTiy<~@@7YK!=}uBmWq)~i*VB8m`QXQ?XYHd zLJHUh1|mszds|uT@IS%*V1I4QVEhnTNE&#=rsk_V-RF1&Gge%&%{(GZD0JRDF{2qA zi_O(MW17JolCXrnpA<9se~wWttO{sB<|Mk5BibO{@hl|+J?+m%HiX0Y+TF=ktZ>>o zrpH#mTF|(=d2FDBRh82jFx=KgqN=7{M;-&3AMDT4g4G$r!A{;nwVvm(0E7;wj$?`H zea^7}?r3gYr)4vM_S1bG^;9BQlkFY|y5<4DM(1YCJv3y0pv7NjUpXazxPem?H^E!> zmRO5X)L?~u1#$jUy_fX@28N4IimqP;cE2CTk{1 za*7|>yd+LO&kfGZP-uWgr~cg<7>pC4XrKc=+H`%ptPQ^)wH5@eGf3fDRQ>1!lqYm! zTRH}R#)4p$!W|;983pt}Xya8tTAWTkF)bT`m~LBYlVN!VMmd%yMh|G6>0W}G{|3AZhkk1gXK=Tdjhw+ zInSUB-zuC+NOZO=?mZA0>6~)r!)KPwfSXRP!I6-t!G))|5tJe-HhNB~97f_M4~XB-cPH+u!=+Sqto1y&xPM<< eJYh0_<42bl!}2cOhTHAk0`pZiMcxGgK;-X_gY3=# literal 0 HcmV?d00001 diff --git a/Help/style.css b/Help/style.css new file mode 100644 index 0000000..d3fbfc7 --- /dev/null +++ b/Help/style.css @@ -0,0 +1,5 @@ + + diff --git a/Help/tree.htm b/Help/tree.htm new file mode 100644 index 0000000..bfa39de --- /dev/null +++ b/Help/tree.htm @@ -0,0 +1,75 @@ + + + + + + +TreeView + + + + + +

ƒcƒŠ[ƒrƒ…[ƒAƒCƒeƒ€EƒIƒuƒWƒFƒNƒg

+
+

+

ƒcƒŠ[ƒrƒ…[‚͖؍\‘¢‚Ì‚½‚ߔԍ†‚É‚æ‚éƒAƒNƒZƒX‚ª¢“ï‚Å‚ ‚èA‚»‚Ì‚½‚ߍ€–Ú‚²‚ƂɃIƒuƒWƒFƒNƒg‚Å‘€ì‚·‚éB

+

@

+

+

ParentƒvƒƒpƒeƒB

+

eƒAƒCƒeƒ€‚ª‚ ‚ê‚΁AeƒAƒCƒeƒ€‚ւ̃IƒuƒWƒFƒNƒg‚ð•Ô‚·B
+‚È‚¯‚ê‚Îempty‚ð•Ô‚·B

+

ChildItemƒvƒƒpƒeƒB

+

Å‰‚ÌŽqƒAƒCƒeƒ€‚ð•Ô‚·B
+‚È‚¯‚ê‚Îempty

+

NextItemƒvƒƒpƒeƒB

+

ŽŸ‚ÌŒZ’íƒAƒCƒeƒ€‚ð•Ô‚·B
+‚È‚¯‚ê‚Îempty

+

PrevItem@ƒvƒƒpƒeƒB

+

‘O‚ÌŒZ’íƒAƒCƒeƒ€‚ð•Ô‚·B
+‚È‚¯‚ê‚Îempty

+

Text@ƒvƒƒpƒeƒB

+

€–ڂ̃eƒLƒXƒg‚ðÝ’èEŽæ“¾‚Å‚«‚éB

+

Object@ƒvƒƒpƒeƒB

+

€–Ú‚ÉŠÖ˜A‚¯‚ç‚ꂽ˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ɃAƒNƒZƒX‚·‚éB

+

+

Create text@ƒƒ\ƒbƒh

+

ŽqƒAƒCƒeƒ€‚ðì¬‚µA‚»‚̃IƒuƒWƒFƒNƒg‚ð•Ô‚·

+

Erase@ƒƒ\ƒbƒh

+

‚±‚̃AƒCƒeƒ€‚ƁA‚»‚ÌŽq‚ðÁ‹Ž‚·‚éB
+˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚àÁŽ¸‚·‚éB

+

Select@ƒƒ\ƒbƒh

+

‚±‚̃AƒCƒeƒ€‚ð‘I‘ðó‘Ô‚É‚·‚éB

+

Expand@ƒƒ\ƒbƒh

+

‚±‚̃AƒCƒeƒ€‚ð“WŠJ‚·‚éB

+

Sort@ƒƒ\ƒbƒh

+

‚±‚̃AƒCƒeƒ€‚ÌŽqƒAƒCƒeƒ€‚ðƒ\[ƒg‚·‚éB

+

@

+ + + + diff --git a/Help/イベント.png b/Help/イベント.png new file mode 100644 index 0000000000000000000000000000000000000000..335dff75ab74e4956ca2ef1c78d2388de180652a GIT binary patch literal 26250 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 kEazk!`~8iIHs7HnVEU_oV)wptE;+y-=FKM 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 literal 0 HcmV?d00001 diff --git a/Help/オブジェクト.png b/Help/オブジェクト.png new file mode 100644 index 0000000000000000000000000000000000000000..a793b70709ea780cdc11b6039a835d4c51de67ff GIT binary patch literal 26683 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 literal 0 HcmV?d00001 diff --git a/Help/サンプル.png b/Help/サンプル.png new file mode 100644 index 0000000000000000000000000000000000000000..8e6645c0952de8a9b70f4bfdba59c4ec2b198118 GIT binary patch literal 26362 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 N&FfazDz3P__%Hn%$p8QV literal 0 HcmV?d00001 diff --git a/Help/ヘッダ.png b/Help/ヘッダ.png new file mode 100644 index 0000000000000000000000000000000000000000..63b00de9a4dc53d9861253a6083390f413c6d63e GIT binary patch literal 52630 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≻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%0AIikdfSH!f9 zdlMUh3YEZqK77^+ZLy#tTf%SY@x|d0r6$ZgyYpr0IR579=7e0$OLvolb?z`!ua7Og&Elo$!T(8#;mL{Jh zoF@XIpHjk4{#p(LINsx%ROxy?biA5qMxzlA1cf24c}Lg!30#x~@R zDCw?+Q~>+A@mY3uy|KvFat+%~4_C0(VAzJ5=xU?qnRycC2AI!W`{<5Yu7}QEc&St3 z&h4FUhU|!9i5DiaPQi9U_i{!XtpD80H1))9ToWTot=AV(S|R*{H}B$I7K^MO6j`S~ zS#iFp!_=-}%s!9Zkyf6+w8Cmj8C!aOf(Sg(iR?^Iqcn6KEW_c{o0g>QxGOx@zmQT2 z_#RY7VUxrv9-IvFbZcIaL!Jz6!oLy=Xt?u67_jFl@%ib&TR(XErTBcH!cVE1jzA2Q z7{a50c<*79*P>i^q4!|IhIE=d=PFNElVd9Ek+oyyqYXBOcE~Th@59e)u>MeSH44aB z#7|psX+)P8AN*g=q_zg$&yBesCEtC@!9#Ei=EHbiB9JVuDi7#4+?hm2v4Ngy&jifeS`W9(i<$6xavdUy?s5E5P!8#o%! z`dN0GOUq2q&2r}GDC0uru;U+jfG=<kTV%o&_)`Y~)T;cT{3y8975?4jdpQ4zWP{vn6LBdQ$IV-SEE*au#X5J z+~?^*!?nD%f$j~QgRTCKye(0b1U*Ws}CX!P2{y3v~(^yzwqo*kM;@9AqFH@fnx$q!$a zal!a@T(+G8LbmNn2N`{ct)ZU3Od><-VA94d6MQjPMjxx2H!e|@-zB-J!JJ29ATjgC z#@TowBdJqI_AjFJiQbFH^39#H87iG8kv+PyxI-839E8s*AO*>b?+CisX1->wV)DE5 z&xHq>6pX>PyXetD+X$P-jh|G4xMi(V6 zz#kniS&VqM&RMyUUMN zOM+#tiZrjvJ=KroD|j1Qie31U7Ll}bvN>?|)}-&N#iZ}6=$xn5XlFXt8g23q-KGN=bCP?5>#$`8$LiD{-&qe9qHZ{q!eGj&89lzk>Bb6Fr-&dRY(ems2`?Ut9 zDmd)h1>zCJts%9V^KO^N6KaRRnm*+DPMdYA#(brKyaPSB@LfsRvVtWM1W^>Ym3?Wn`AoE!R%?jL08nDi||we+Lh2AV~K ztk;#AvdejB1?OL{w|d!iHhb=^3+_p zqM8J?T#FEIub;m{Pni>3-05=e-RUn)rHij{TS(#`FCN;gBLmDk#vk3(o2t<6Q2nm? z?iT#dY^D3l*a@OGOI_@RyNCCEt37yP$hvm8?woWyhj$3*AY7avRQwNJecjyVTHRHT G=l=)BC)*$Z literal 0 HcmV?d00001 diff --git a/Help/メッセージループ.png b/Help/メッセージループ.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8f6542c3345d99667b3998de1a9d593331600d GIT binary patch literal 50749 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 SRR1A`@831OQ+dnr_5T7t;i0$y literal 0 HcmV?d00001 diff --git a/Help/動作環境.png b/Help/動作環境.png new file mode 100644 index 0000000000000000000000000000000000000000..be184f935bf1f8c975f53bdc740c7039b80d3023 GIT binary patch literal 27381 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 z zob(LNW4c2h3*pKv9*hmIUCzc6d~8rpk5OG_QL(%c(`#N9!97hClI8X5URAjm6j7uv zvJkB{thlldS4GN@)G#?-_@~sn@S5?}d?^$`KYLkI3k^Pcmva%{#M?O<;&nlix`9zs ziYbAB%`-Mzffe)SU)!Q4Y;m@=`Rc(q1F3^qOiA~*?G>LD>)5vudjA&#bPZZ!u090Y zdml70u#erCAoa|@8Z(gHMfe>kKUQ+Yng6by7r*5^)$)f9L6-y3a-@}cTI0L`@@R`^ zI(@W@dklQ&d{g=B?CG>$rCK=dsE7wtH=+`}eKK|6*K7JuQ~buMF{oJd7Pzm#2ua62+FliE&+&{|HR#flj6S{w^}(O*sGd)p zM5RTU{g09Q|97Mp10gJ?`d1s)!cMT-{cr4Y%31t}usfu}#h}7@%FtH=GtDU?Y`A%M zC?s%CZJ0u@wF-aEYld9FpSvZ0 zs`uV4r&0$!2J>>Y)k0Py(w>nX#^twj$7{H1E3?S|QMbUNO4L1$MYkT=p$E1Q|v zj(7p8>jf~TKGB@AI`{IXxtRdUspE0D8M-bIhG z_Q^44;6s8sGgUa`?O}~kOsit^uSNy+CHkpdfd#EyC0qpOCqsnX*9w8p4=#T(yIaKo zWkml)z5d4LV;9+@D|062k^rOWDB|p4)2=6RzO4D`kOk{8t5ym9YMr;hJR8w(EP!Vr zF37d8Tf{D^MKF6zuw3Pi4lJBlbT7lQMPtC{ogmkD>lD%9R?9ij1|8T?`Ej}zJ9j!vtzG|6Pzn}xLXX)J(QLLKVaIm_s zK;cO-AeKgkly$(f%5#^E66w)g*Dt$$coFd2+DfAClp)?&WnhlM_jI^xxjW--@RiI* zL-tD3I-{Ns!-!u(L>!5CQfID;l*e-`-?^0%!)gDSuA)+RZJPfK4xr3fV0keP;okcv zPNC>hj{I(BWT>fo>Ld0bF30!f&mpN~w8f0f{Wyi3n--EZbGLi^^7MNPF{dN%Fxg+d zc~xaG#r1<$Q8#AtHJ9Ai2MC!5k?(S%9s7?td1t=|=5^TiD(|M`KrT4iC}lh>^zM&2 z{Z)M8xsElCDBf<2O6759l4Mn81f;TU*T&vaiMV%|sI0mFBGLjzYWV=-tq%@(v~w+4 zCZI4!D^izXLT2+|wkd>;2W&tT>)scwrc zQq66F=4Guyyz}37Sz9~wA3QZvd3-yY7k+~RRCg&P&%F+OY#MlM>4Av`Ui)zI3+<6S zOy~M|3?3qK$g>+X8fz)2*U3CW2Cq@m&N&U7{#7#ytT=D3u6#Yc5w580MbnLl6xzMQ ze_p<0cC1?GzEy%li&KaYDX6F^uR5Z}^n3S!zCG1*W z!1{-&&(*Octlgm>%QgC%37et!$L22)rk@52aWrNT=`c~X#Q{c&=`@^~z!YFRgkVlK zbX!Y*^29wnvYX;`Uw2T71sCG1Mwnt*zJtwX@li1iW~(_9_J%yjBR}nI6!tFGev(z> z)jY>M*7HK>g+F(SZVXCEypgq@f?WLm(OQUnQrn&Yf`W`9!Jj6YI+hm;(b|gaFzXOuz=?Src;aro$UT)V-g5Dg9Gne3jEXbm^+Ttq^W+;*T0ik&Lnex!7x2m zCG^qwXO3&*7Hqbz@jG1oXJ%*Aoqis7iuUX0Rq-$uPzvW8^QDB975wE_ z!vhhQL*2`xHNV=oG@(~cU9+=g&#zX^y5^Z~8*MD~VVW@ef~_7!nPppezLc;y`Cco# zHBE**B>NG=*s^`{^Ugy-w-UbKDazvg)cZqzI5Zlil z>fXfO&bKJ#tGkz(B+g(^#>l9Zy(Q&b$#}4a_|;T&GAJMJ(25k;Gu8*b7AeN;?L`*( zcV)_-pf8*fSpAga)=~iMk{7jib!0!vAYBZ(+N?8~^*KnPs=Mrj<4SY=RXJw(|$2iVeMiFCryx$bGdQJB_-7%?O#t z_U!hY1{siLtR)|#wzAZlt$zLWj225qdwntS4NDKe3!x5uV+5m zH1Ts(T2?Gh15`tI;H*~lFctC-oP5Rs5yCJI=kKX zlqK|ck)8`Dv1iEZOh__(x+YvZT%SnNvX^IewuTDjarH`NvA?&CVk4A7ifw?8{dF@b z`>e&EVs0uds%EJ+K4a;0e-jH9VJtufvnkYlX>WQA;JylEAM$xSYM#j8Z{P~xewa;r zs?$9L557cE_6bw^6r$Lpn=Qg!x+e5VV6yzMMBz)R72(uGBTRT&?0l8$>+k1uK|we* z0!NN^bBg!xhw`@HSTfDN-*^Qf8rY3)$XQRn)<4xR^?CGjk=a?^@H4^@$>Xs@ZFcdG z6MLh3C9Du4mN(X&esG(9dO?!BVenOD(6nEz^|{PX>B)wdJj!C%ZaFzwv7Ach zEdH7Ftm|6^Z?e?A1_yPDAb)BT7q72)R`S}&c(79a!xj@n!GTeznDy%Q1>GCuHjK^U zJ?jYxy$cO*-(Hl}o9>tWIg+yl;XFR8^`T=p#Yg2%&ZT?0gPK~|1dDm~=NPMw>#K~? z5`5O9t>{Tt-6xI_V4God?(q zKl_BW{BP9zD!*>2Rb5ZIkjLDNdGAsRvyFmfd*eN13WJ3i?Et4Opz6vz<^=dQwirANFsxw;1}Nr|l#d`zKwt({!>4{g=KEPCeIV zZdX$vlXLKg{d^e~swDLSO6_&CG}Mq?S$--;!)z1S8G+MNeY2JHddg@b=n zMAeVh2wXA5h1tc1YCin6gP^@PB;B;Jw_inOs!fF*`w9_*SSo(aS9rdT_IcGR^ zePXgJqov(yP?W})71rw}gk&6+Tyb4pxk3_uz}=GC677NZj_L5);%K z`ig$STm@WilqSrNI0db@hzxk=ve8%xPcO&aByL+x-RoybGY%`Mt`TsMw>axqx-$79 z(zRX?e5=x=0dP4>3iEtV|m z@NA*Y#Cg4-Yh(?&NJ!)%{m*~?A@y_b)cSi^agi4(`J}?{n0^TxqMUSYm-ZJOf#h4f zFs#exUgS_0==0tv%vnx?U-d5`sS8a&Z?X~kNUG6|BvG`aQ3$r$tK0mj)Bw z7*4Aclu7!kIfpSchaj>pO$uZTbHaEkd-(k1!(Z8z_T{keRO}Vw#W;Q+JF2GPUT2x7 zX2ebn2Gz7jA0|G$N$}Zfx&vXTU4);I1+z5Op z+HN~;aXo%B=OwVa3i;r5`U0dBmLE& zx5}DoJ^8CtQJ-*mlFTYT#|=ID{Nr;Ur~YlEndbvZWVL{{eW~ Bm$v`_ literal 0 HcmV?d00001 diff --git a/Help/更新履歴.png b/Help/更新履歴.png new file mode 100644 index 0000000000000000000000000000000000000000..bce314e88984e665c9ff6e64660dc79dbffb7f79 GIT binary patch literal 27476 zcmd3MWl$c$(`RsZcefBc1ozUR zv%NdpUDG`~{hR5Y`K=%)js%Yn|K-aUBuR;%N}n|Fvyj0;f8MboojX4Xq_eQ33hd|Q z18Wlg`3~nGq3QhP3j+GT0yewh_x4Z1MO4E@+1|{>-O$POi>#rslfA8}iKQW_n5C1c zySsmw0MwiXw%{))AR7b3qhhehv>wtZ30&Cj!Y9(fro3ndxhVjO7 zfYmrFMP-figb@dmppk1;b)7HC3*#khJQ*9G&Am8A+5MKZtNI~P#mly_SxdV*Fn03N z%2fzL{{uJv*B99d+A{VU$%k4o+APXNOPQ-^`2~rO*~_2j9KZ0|BJwdHR-2g_#pj1t zERhaLnNGM4b)dkcWx{o|&^Y3KI#II9oY!5~OMiIC?Trn>@q5%}-153A@HM=OM3h78 zkDz2a?G8Y%Do_9h&IU{(G-H);mouim6D#OIbgERHmcLc;CFq1`s3~P42Ja>~c|}GD zKGWTio(H0&!z?3mr6}**Sh%hU3@CCsUi?h{<_BZAR{;`?DRvz&mm$DDxsj_adE$_?WxEXsId2=Q> zic1u%rTUK~Gp@GZX(3KjZLN)$b8apd0IeHHUTfGTO0qw#zL(5DtyVa`X)pO`r)$8& z(zBn+d<45S?p*cvG%Xml)dg9z46_~icR~UEJ3xs5!_M;zh6)_+Wf?b?Agny~0Rq=% z5WO=XybEmk^~-6daH2Bk(>}B>wnY{Zd{wZ^Xr)rYN=v zv&>Oj<=VT4Bzu(#hI!ViYY&^1 zO8*7zi8_{UnAl!R*BJ-o4xOb>pyjcj?Do~f^Iu(-l#I%g-#%f^X{T$Vfp8zI)dU?B zS8fhZ0aY%_XGXbpVH+6Wk8F&SGP*vDui1x@x)5>mWBhvyiT+&K1y@!)jNsTj{7qwM z%nz@RLK**u%m3d1@RR(yYbZx!K)NSQ>?;2gp(Jdrg~eVrM?XHFAwSE1>!K@U%lq<$ zK+)D(Mfnrcbfs-5*EFlv*S*cpJWbItv1@SQ$Y5t}A!Zy9+W0b-_zx|SxsDnocuKNB4@|ROp zS6y0r(DBx}_)|4h>U@%U`38CvI7#aCT;or7eJO8eTWMd?bu}MvpW<-m(7KRO`_l|y zaWF4CxnGOnVZ*AvJUbI^?SxL&dAau5xR@Eg=vg`$-8P`sO%a>b@SC)wz@GBz>2?;egb$D(N2Yix03FdMo)n6`bvCu2!CI*2eC|o)3qI z7dG$&oP2jSB}iFrI}LL^n`@KYwr7kBjrMb9uF~IUE~Xv*1#w($0LOD941Tl6J&ndw z#LF&j(}x6MICeJ=PiDrZkTjj(B7ipLea0mI)Z!tMZ#>RH_ds`|$;-Y>VsAgqgB8;u zLS}mQ_FFLZY+W@^J9)Ri>H`Yu2Bfddqyzx{-dvJMGJP}=;_fIvNbq;`(c42c)dVq_ zfzmm8j)A|)Gn}ke*zp#szhk^@t{vx|-{N^XVHAqL^9==LUBk-R+-7r4{>Y*YnlKHR z(2-$P#1mIwX&|q8$~Um268w{d28|5oAWJ4ug&?73I4r+YPtOOg5IT!+Tzgmh>p&N5 zOcyn&50>&U*w_eOV&7zUY?rSBUlExKF5Vb5XRe+LF-F(&PTJ_smzJoBN9@ zq^zTI`X2oOhk9qU9m`|;G6H5(NE6afgvdJ(Oo>P0L^_Qa8|CBCqI$P;{0e}SM2MKE zb!fxHjmf*C94czyl#oS6|LqS;>867>%PCgJDu+StJ8Y;FA&Dk{Aq-Re4K9lwJPWx6 zS)R@Z|JQg2Dy%LJY~%2|A9zuQk^R?moSyP1g^`zr@Jp=ZuM@PVmJU&dw_9+QDoiJl|MIM7D8UGXxsbo__JNi3k;-=E#O~RB4YTD7!K^eYp zFVaNC*vQiV9c~i@TK-ZZB$zi~oiY|>W{Ql9$k&!EOgPGjA5)x{#Z$YRsDd1SPAm3C zT!#Zlj?-%wJz?_I$Br%Ir2~VvDT?t9Sqcql#VX_)z*DGCVwM5nu!FQQkyDuDWUA1K zwW^e-KbBCVgd?@KO0QH$dK;j8O$-8?)c(jB4(Z*E*P;DQ=#fB{X_YDj4~S4v;|zQY zse(n24mXhuJAWl}D|;SSizjX^9fp;cE)6fosv)XU6TDCM`LDsl~apx-qKG3~wRqr2sRm=B@*H6HK%q>iU zRJ#vB@J;76K?;J1Tno32SUcX$t-zonIZ$x=W{ZoPYorN6uXzGUb@QJTeqjvgpD?Dl z*?7zP_%T$mMWZcc$7q;Fs^2sqZ;u>nv=LUaYD#ufe$os|Phk9Bm ziaf_$YLj*ceX65p`Y=2CkFsTUxnHZoH+hgk1vh2ql3jnYh)jsh5Z=@rx%Oexvtu zPyBvy_~z47KO}#cTIrFfm$h}8Y8 zk~K7`3SNF|-QOk0Ygm?q9ce>lqWG%UhmO`6|JV0-aiqWoeTM_BP?JxL@ZVjs&aQMT z7_s+E^3c@%^=GvUqJYS+jbHc8CdkYGMx?Q^r*lUN8B!1E7 zF?%2VZYo=bXZ1gG0u)DK*e3JJ?&7wtE_Zz!^a}$&XJH`VBYnimQggAkQ_RL!S2q)A zkns7O$bgt3KPPa)a4C}%bjNiq&|Vo9;WdnkzTi0uwZ#{bIZDwAH|K+Sjpq0Bmac~0 zh6S5#zRV}aeeLuhrl3}xXgHIHDs978I5qZy3@4j$F@)0dc@tYWOVxQRHIH*ri_RZ& zT=bn<-qL(@zo-Z^7QaCski)Ba`%A7+pRkg-A9nmlslG;mM)7vO7;6I9@>?e}lfxvE z<&ig$LMPJ!KWbY7GM=LlnpDOHh(%shXC z@RSRpNX zQs2x}$vT_h(ys3JaV4Z$7ZN`yhW;Mrp|R(4J~ovLgj?QQoJ%| zAWJdU_;Ry2O(fCQzXf_FYuxFsy-c<(!AT;T=z`=PXXog`+DTlVV$0`+DX{+O=LzfLrK?T0d>Pnd9WV(o#9kYJpdBj_;zaPzk54*+P zEre_=ttX+^`50DA{r{>Q|Evu2Vu5?v7GW0XN^}C?e_vb)J52vo%%GRyDP)CimSYVb zRY>pVRQ(rP=k^T3UGj^$^57HcFhzS$JNs(@@4%EAgsIPikS2WQm!v?P22!dEstM^` zz1faJe8I$el(?y%?v?>NE&;y}f$mC^>Op2+4|$r%XX>c%(1*TUHL5#xSy6RX%&qan zx=7U4@P^irgYRj=DgypMdASZBnvxE!OOxfMebkn$6m%{n3URG{3qh2tPIh>a^5I@2 zGK4gUtpb^YyaonrFuu`Ln4*zTFE&x)ah8Y(bydwAD3Y^1t)c{#uI} zEv0eCM0~ZTP0{}vn_kQtkz(bgz`dZu8IgqVm&cMB^NBX!@9#nnJYv6+JL!@JQc?8o z#Vx`aO`4{MK^vEatp16DHkNX>D9-Cy9u8k(uPaN(Q~k%C?6 zl!c4D)B7aYI4u~4N4pKO$U6v0V@dw*>Hama=9?gFr!1IhD=IEDb#;PhkI^DIbdL`{ zG|lr*)SCR`;@{w1j`*tGU8A&558rBxoX1jz^Z_$cNmItM(ef3(S~OTSYJq?<(E}Cv z)Fz4Q*gVy-cs-^EcBp=pl3(lrU`eAJn(#@4`sV`V^cfTzvW;*YvWa%GJ@V-;v3K#@ z33C=(8Y&sBF7m}slKo%UN6Q!`q{&wOg-mb;1*QAD=Mg<|&&%+~7cGpUjhiOmrJ`$D zlM@?VPUOV)Mrx7TP`{EHJ^rqLDhnb^zA~j#q+&He^@}lfvmbmRI&sWqXDws>A_8C(M6xZ9YlD>76f;cu-QE?oa zlKkd$;B++Fe%FAAw!H)h;fv7mWpH7ahq+~cF}MigE-oB8X~9)dF+Pa+H5RNDT!Y$r(`AEn7tb7 zj@hLXpWqq&?vM`cz{L=Ie>j;#Slw}+^8WyYHd0)gUz35 z+61dmFXFx`20wK)iQn^N+*%#(K4;fzRo#E}m88D7_K?wW%Pcfzd?fsEJn$>K8?a`C zV&CJ&@487fP?0y#Arf|xia7!Zx)EGlWA4Xw?c5{oTgNuIlT3zaTESFp?T&@`P_A_K z0>!Ht{jb_P`_!c~t)y$taBwu$bmZ+Y@9mUs?IzkwCflVZ+SxDla5p}XdK-EyKAOG$!rp|rFE(3AH!J=FB>ZKA1k7_Bksd)ezLAa_SNAys;W=an+KSmezH#K z5oULKl($)>@F9HDuKvd=YrK-uAkRveo~WUwW&yM|TPAZ*Ql8yr3wWr&FkH47i5!bY zn|nNvIPY+6-m!kJj>upO#F_(MHICGUR8*NnnZ~cE{LSlvrfVPn2zd{FXM5#;^?t~y z0ZCeNwUh1Jd|00li&eE*IB`Tx+>MN6scBvC)BFJ{om3%|BCJKW;CN~d6IJE*b}4=o z3%Dy8CnQ{m45~k6>Z7po$4spTRpfAIiK8g#O`k{Z2r<@n83~vQ7;GijNp|tRgjLed zs>k%yKZ(yd%-efa5I1lB>u&8^8=_L2{S|@NPJtJP0CT2SKSu9y09^KE34ikqMMc=9 zolxh}SS9>BJ34{}+^%vQ@4g}w|F>;5-ms-y%;$O=G=g?aW3oQ4BF*V=MP5MJ zODzLes_TK;TeqMi>{sariU-{XoU@$VP5Bk~?W2+RqU$aO33W7nt6om5Zowg5cnOG) z8R6&~PD6cpnm@FMr|*R8BhZ98!oQsdMY@f1JRtbOQFfk~yHShYt-^r8B7Z!++9F3{T;&rZp*OoE@ndF`r1!a1zYAwLR+=6Hv~ zr)nd~-;iIeA4DFGN#6GE6ms7fGoO=u<*l~O!H!K^mMD%kMA{x1H9H~fkw9)6TJ{d# zKNBniT~m%Z_8re$qD#-3>(@q6LE*A;4HMnNeFO)zumgK*?Ymf10pRc-lj9$ zku$e%FT3uVfv2eV=2t}a0^DQz;nDq<%DJwkGxGT0*Xfe)?b*MCH;L>i$rbnQ)X6Qr zZPE~j(NK^-kr%l;5(4?67Nt+N8X>>eUApn1MZWPch{uI*iNtJB;K9@plsYF>;oNEs z+>^h{S$f6$rncw>uQ74Ixaji9^L7kZc{@O%3Zf5WJX-};x zJ~Z=9JWtD%FT-(rWf-Twek7xZ7p~=Q4YUEe(4mh#KOPP!DOkvsJ3pTPchixOr-A4>vClYd^i6Q0)Xe*NSr`y`}5t zmbf4AMV2e<(dqI$+^*Jox)+h@vhX#}CVeBiwgE1!*t)3?C;F>UEzybmk@hNudRU*r zSFHyE;jBqozqwRj6{x4KY}LpwHy2iCDrAR4Z6X_GnRBh5qphKD$xVhAl9KXm-`g^zq$UxXZ3u@ir;f)B$U zc8!w9J0?xNx&s?O9lfeSN`|L?l%>EcpuZ2*#_p}aEz&%Y%WVZ$|0b56ji$;_;i!x8 z#!c2syhmr+!2iB4BgBQUhjx=AkHpr(7=BH)?hJ#o4a(R~fuvoD$HUttdGX_H#@+R@ zKflF5%4g(&SUo+8+{wOM=lW4n1n=9Y)YGhEF4B%xp3G1Aqt_7Sv5C${e0r*3Oq+wxJkRr3S;WWRbX#hCqO(Y7n3 zDQ~}R*n_`DuXV!N;ePbIzSU_hLUPu;J>}unD8vSh|K8tv0J|}UrEe}>Id-J5J~o0oisD0&{2g;_ev(cWUn}zevX8N6!^*yN({d zSBt~0=ixsH;t};t2nDUa-`m&Pn|avMni-oQfMDNYMDT68NudcCI1|{7xlLfZxAlNO z*KSuIy~OJ$55IV~uNDCw+rH;+!W(XE>;iLPI2$xI4>GWA2`x?7$@&MyoY}4l5-^mtwu-`fZM;tFxF7IKoSw6Hus6u_p^n^=)Z5p9 z@>A_iFm1oB>QG6jx6}66Rsg&RrkdNCk2Vd607kR1HCF|28QbxEsUK9+Vo4vwwR^bt zti$X6iSKcnNKeqOO>u8WTx7Qo@DnYa;C<>PDdx=v)a+AY%f&STb0Sl2t1j_#J&tQS zPqyu29L<*X@aKQ`YR#R`YhNiL+=hz35~1^DK$!C|w;H$LoMe=BKZDu(Z(r@oZjx`= zRFE3Uq3rwc-Vlo0D5hij!hS}q#CPIq=?-FNnZEZ8uY9uuV8FC`Vq6Bia)yJywCSb;m&RAG zv`7OA47y{TkuwSzR|VJYf01-qt{5MmHDrR0BZ#}g7%%eJ)6=20lRJJJv46*aF7SGE z{3cbO_g8kpX3)MsG&Da2s$!)k>bawkqBte<&+^%n{ho~RPBD|g!dR~q zBL~$j!MOSQNSY(|pNRg!yl2&Ul0vIIfkIAJS~VtdXD?qE>hAVAG2bA~>CQ#uTA+@1 zQ}f>u1?^J>hee<#c3;(_*wcB$FaITbv{9ia*76X~nx71=id$l74Jz4R{548mw%- zEEeAxL}2KKZHw{jsTDh&GiETzq~`Y44;zvW$&GD(q*a`VzNA2T)aM=J&qb3P#j%4X zLQBWSzcO>ODSw6V8@3gf{X!RQ<3ym0PLL=otC&1Xq0(1Li&RkhRm!uY(Sp7V?8TJG z{36kUwHb;FEDe%-+%}A=2?I~Xuqc`Bia~}{YET7-nvGrL>1z!;SKKt=0B)Vp4Xp^f zM_OJkS-)T(vlIEYArV-rYi;sR9Buc;_+DL`NH~iHW2;8YlQ1O>9)c)FyzKZo79OjjhiO$wkCrdtXO>u ztOC{D&yOw`ZYIR=HecaKv)!vj;%5y^p*ZM+en1@stx@1#rAQQ3+G54F3ATqy2sDblM&FAL>+7fleD`bKzx=#z~?Zpeq6*n z1)ZCz;j;2xTfCkQ(_WI@^>b%s=D!r(YkWY&*|3=8sy=X zFO2S>ak zFPL|15rq93S>>9W#YYDS#!_5JLvk5O4(t_7b>c_)B2tBA^`5tWv(CC$mRqNS!{+6DVDeoKtc^5{ z%0A2myjQ)xY#!)&Br!tZs`Lz9L~A2rb=As+W!C1kv7Nd-fK~)5`70>(mLB(;Ow#rp zJ4<@3jS9YvN?~JN%Dq(yP;p0&DG4~qqPY-pSgat`l|>N8O3CX4i98b^42 zD?}TaMOmA10-n9(%3(f}etYQs3tW%E8wqvm=a~wel24mdUM5FBz%cD{KWzm2Z|y>U z3V&`sW->J#{;hiucphCImY~GO`~B1C^CSfJC!zQcZ5_DC&i0;k*?Mew&$hqL5U{=< z&(_qXD?9Oo-3PQ&Q$Ieer#725U?@kf7T&Ty7MvMXzOvy5>Kj!B z<;^!DqR=0B%q9p|RI)B+DC;baKQ5VNtUI=0a9p(Sd5a%Wh_934gXR%iUwTk*O=Jl%$XRXHM!XL5IGHk z;6auM9=M{nPbFZu!;`L$TbDm!tO8Swo=o~dWs^P3FIB7a<}+ZKPH|vtO-k~b#MscU z#vq2EIP&O3?l>pNZ;kDpnWWvNDcU01;yH38Ty9!!8+YYh;U1L>CY5ncK(KnN+E5mj zoe{c_$xp=H7vf=8>8?J9bp0$J3-Nte5v8oP5elqh_A7cH+zQYjWVIt)jlgR$=BWI zvO9@%%+gEj0-o$bEQm8U$m8gWu&uiW(OH5uHal+5AlN{Ia8yCv*Y_(m%>iS`x|F}z zM5&I`n&#(_J$<^~xbEC*v?n;IH7{)!srJRG)kLZX<>GsFTJedNOd5-9{>@CDshJI7 zNukdhJ35qFD$@DesAA9FXv_&6dvwJmE~59ZBlN0?q_mu1^<5qs^6@%@Zfr%AYzZp{XroA|iDmlF1$j z6GUQRkFp?siJ1l8x`znH;vb`*e2AHBiuSbmM_N5^^q) z_LPW&4A-==0hxHtl*^qx=*M8eOi(mfU2aUgAYam|_v^*erlYvUu9#(2%Mh0%$s_0xIPTD>hIO>*ZLX3l~=!=_2=VrU9_knK~q)GX*ST1v4Qc=ZE|Mh2f z=H+h3ZZDKM-y7BMFv}WSn9!71Hyz<$a^2IGe9ft0AL4YYZca`Z%J-d1i;-xVEON~_ zrkIoz<3W@tDQ82#F8#@%;zv|27oSNN0=k9GB=n)vX>hhH5q`?k(R1l`qmH^%%r^!l zVrVcAO89u^WCY%rL`mz@FKlod=!NW+|CFF*19)CUgV9*y$`*(jvbqG23c_R?1miUX zL6(cWIKJ*DN7YCe@Cs&#bkrOtaXiiJ|EY$`4wqfZDgs}l{PXnL6+)cs?t9ret(YZ9 zG(YJRarukD-isML3=&VEtgvNtW8AN|lky%qow*YCA{0=V*&k&C{cYU;;!rK7er>IF zSp)C@+zFG)y__o#7V=QOI{lh7uW4X0qUJhOQd`8Y0Y3mR`9+@r`qu%7O|$PuVwcFb?+s*MMd?2}?$svf0!wx+I3mj507Z zgz|#)cEL#L;aU{(P#a4#B;6kO@ka^j0q5>ArW9F=E`yz-L|Pqy$-{!R{e=^lmQyO| zU8A+~&mZE68Amtfjqz6k{1TOr=^A^wjpC;fUj~Y^f&5>&sB=-F|OW0YmKyd?hUn!y_-MRBspd=CNu+hQkZ3Fpr zso|3AUJ}j#7jfOlCP%gEu5eH`F|}(1XxH)RDXc zvNF0MQ5vA@^XLBZZAC=v&MNyMxQ$(H@SKWi{Gu!cXDi>#dhN2c?RkntsPW4i@yR&} z-VB$UvX2t!F#Dfj#to1}0I9Nz3_-RIzCGdj8(>n|!!PTqtY5<5nrBwg6EQ%%tNH;x z&B7UJq!?v^!GBmA4wB=dcAWLrprRuWv~7nyh^4b-sL@1zmFs?W29GSd#_YM@QXM`+ z8W*L-?y`S)e!8D328B5_Ckb;2h}u;5C1kzif|8WZi9)h*io*Dr-x^v6*ro+TNrnF` z9W6WJBA@g6yuHTaST(cscw%W0Y5%{`Nsul;(hyF^@MY5KY*BploNPw}-$M;wNBt-m*9(;=P%U4{degODduw`ntVB zZ|UYEku7pMG0&0&DzlE)`Lnt$#}!!X;ZC&AfjE~2x-rQ z7B*Mw*@F5Q@C`j)L-7x zo|#67;l=m@-a3H!a8+t_qs3Q_3TT4%4QD22Y6}z++;(<+D*Ejhg*RX<;BT_r*adTl zoV@&Bcdc(9$x6U({E|YZs1{}ebhlAc_!AlVIkJGLtCeYpGAWAtf3phUnY>KYWjcDJ zae@(eSs(BaMs&pX`=C9p3`fg`naUApEdmI26wU?C?hS7|$nqpsyiHK?;O) zDNs_wKx#623O@r+V#M_tMSA?%U z%jJy~T+Kkw(FeAo3#HtM2Kbu!g5+D@w5vRBNdtZ|y>G z?9mHHj*8DEPDUJ6)bMVRbm7S0$A=6ZcNa2rNTy*?*k7tZIEhtGH2x%LE+nN{G_4&_ zA^*oa4hLT|r1F;_6vzYhc?4x`=TSPno;9n&?Uk%L%;XDR<+dH!;`KmQskXR|Tf)nX zJ7pZS9uZghJ_lU1BZ4z&s#J<}>T7!wJu~||-TovJ*Q;(pnYuEs` z*SEI<&@wM9n5IMY5|9PbYl``EuRDpRDowO>(EcvEsQfWh^164f8qhoEPz(Y(_4r56 zMUk2N!J(e$Zd;ONB>JE!HlG}$qL?$KfT8Qg(|by0sP!h??lp0@ZgA9fSeF(L-(&JX zPDpq?#U&4(Nz`2dmw2!d+SsL9Gzf&luI;zPN`p1hH)5&IoRYhTD4_L$wi_yNVS#I& zr&omzY&H&58R?Orbi`aY&wS!{LN00$-VI4KQRY1XAq>w(ZdJjr}T}zT9Cc_20JbHS1 zByrY%Jiw@)lDLH|Ks6!WNm;Yrib3#N4@H*=aSW=%_-xMWgxvFEnJK-^!kAgw>A%=v}=({R?MH9 zmk&|!iSI0rKEk07%N;S6BI7tV)@#5KTQ741+3axY6G)~V^MW)JH=)OGtmQW;;YyM|43 zAoy{4VF8`f|5m=f*|y?5tNISrmFzC&*ECXXb_{&YG5wyvX&glYEj_(IPcz zpjh{ZFyY*%g2tpbwtB9DOBT$Bm!4afcEt13ykEw@bFLtT*%-gXx+qR$6W$JhZMs{{ z4(0fV_e~Yc0uLG?b*Gzm&wmpob&v@=!P#amC}zTesv-yNUE;0v^50beEI#OV0)8L* zxw;cjW>6-2kYh$wnLsq4W7uCGNB*Me2=tUlkRXnwA(LIB33vzUH?WuMM}KK1qBjtq znDecUeCGvF4y}VU4ZK9<=y79C^36X#vW|TPq2$_c(a#(2U}y^zm@nTc;z*x-sW{*p zqG$8#Wby}RaJ67wW?nW3LU%sW9Zic|lvkxjaq}g13naWOnxktCro${<%avwW+BYp< zr4pm->ak{s4p$T$5ntGI(Dn5dcBfQv}0Tj&DL0ehImkmSap-ht#PMK1$Mx5I82M^nub% zs%VfBvxgM9?bTp#2P9Zd_|rwM zMZe#bGfdCh^|iP9Az4+si8S0@C$TLI`;@L#Y$*A!ZfW@GtNg%w2PNu5EKUmqJ#?Am zM+3Ld_8~(g@Q;GWW!)5D7EvFbpFytSW7hDjf&{?{vUq3*-j{SS+NMu%8EhC@HHp0< zY5Luc>{=3RJ3~US560fXTeC147$C)WPEiDhZVW#4V4w$A#17 ztzBl$R(mbFiorb2%l}p#d(BN;>Sp};OFgg%Y5z2BNv>lK+hkLS1giF`gw`*af#6@vw1+yHwCT`1s} z2|U@qI2_eru7WuR9!n0sOfKkoEj)w@rAbZ8x{M}@P$zIxKyJ%td^2<1Y2;(`;G;Ei zlOA`6SwD5<*_4v;Zm0`H4TO_|;`LS?>2#31eHe0MhOS!9n9e-+6UPiKq#kO@VTR3b z-S=BQPUHwq@-%!k#^J+qzNk(to7w0=$k@n(%%>F_+MnabccFPNnNOg zxE2gC2B9|1&7^FyJkmZH>zfDRW8mUMd#`#jE&mIF;+$U%P;tLuW=eKH{9=k<1N zS{N$;T6bc|OCs!^wS)o09@=p_Gan%>cW0H-3pEu%|E8&K7bbc#IW+Bl|6U8VCAE27 zE3Ho-OmHdF$kciGus0_0FEe9P!O&kQk65hMuE69-PIv5yTZCv#c&Kxo;_FMM6e9%t zcDoIn9fY+FCPSDofWZpjgpiLDwxxsp&V&|N@Z$0AeFZ;4SJzm? z8#1=K4KD5x_JBj&s>~{oA`GN4Y8HWaiQBu!X~*RC5I_M}R_NmSc>2IO;hlpV?TUuR z4?8ABa`A??gc-`w%GCeayjbc>oWOM%5##(Y=t=*uUv!Vg8PpvsGGR|k4Hm5^uFz+) zH3@Z19gMGM5Fe&bRITne))pz_+Ke|2o0U(|8BbepZsUaK5Hi) zvmH4EE&ww;0CxBn?UO8Y99Y-yz%LU2YEU0K>s7ZZokI$n%)QL8tK?Ld9v)h3HR}%S zh}PckzT+Z72lW^*|G&u_NtfTd*URuXg<@;D3|SNhfl3+l9B)qPY(KY^|Gpuw1Mj1r6m}}^TPD4?RPM5JUy-HGUGTxw^HE3Ot8U9VdcV^b z=KqX5+wbGzAin_OtFGuAj_vTgJ$%;jQf{-~0=zp{UnoA$q{2x7my*??59IL=B#Dw9 zPnW85s>hnDaAqZ`XFYuHmkws$vtziQ-e2f7iEaJQj_X?9lMmltAE$sf_O%=3aF!&H|6MSsyrP?;2+QqZGEP?khi=;=zK;B-*@PJoa@C+Rm!mrrP6z=DqJF-07y5~p3B#8rx=Jw842kt*J| z4-LS!-)>6F;73{HzDbmck6XoZPObd$oxlfgARs3DN}y1bxT<~pMb^_8^mG;yJKedN zQotxd{Ypo13Q7=qbc+3$P2tto6&dti&H?Pc3)yasrBp3EiIHUz+bh4J3w2yhAimf24Dk^@K$@Y)k$)%D=|^R{2TMH}WAaIJVhX5#q# zu4(pPgO3v;{&mdH-{g5IcaPcr_XaBo8O4Fvh5Thv$CQa%55hMn2D2yUM{iq^j92K%`ElEF7r(F{W_yJ*5WNX zkQRUC2`HW;DwEuib2W8rgo~9nXE=cHxMCIzI2p9b`l0+x3~YPq-0hfVu_f$OJ9Z!I z3Y9NElaG>%JKsV7o=tii|NeWe^&5E8sf*fi_jzn)Ghvt8nZBc5e7)F1423p>e#<`r z6!)mDxa=(DsAuyZH?1}cpmy$X&yAO7syP7wQ;aDVkScDmHI4Dz>UrtLGV9~0@2kjp z06+|M_vULSob=~o$~W6h9VWJ}%O$t&O8rSGwPd#=4lO2(rBon0;O#@l;AnP9uA;s&}s3}ZUU z2R1c~p--AoJ0t;5VHZn07o$AVk9q{ah)s07rK8KVz{%fOn`Pq{FAQK?J1@n6qhI$- zs;}mo{9WRceC;H!w;4-3H+nD88Vx0eetyMl7sq$MQ6d}>tEE*xr1btoX|`Rw*rn?# zY{B;r{aMO+hVm%;c6i}@KO##Tx=%s|Va4tbY{N7p|3_pRHD7k~EZzo#HQ zH&rv&&csKVZD);wb7ShguGl#uf2y-6P_CBtuns(M#yB0;qg}&H)qGam)3RFgImYho z@$P@AG}8&1)BkfCzj4|%;Qo5{EKq!HzW*eX!#C#60`6b3%?rWW|A;?&I$C|holyI= zz73G^AD=qfo_g?esl5=-OP~k%zah2Y;0(9(I40O-=LbE{KK{fqFF!Q?82PN$sOz{P76bA?Hd-Ya_}rH-JIcRH}Sf14Va8qd(n!& z{?`BeNDMU8m5+KyYo|DD>_uzKA(QVymLJ@-*-xFAdRztodtNYNV?E#gyc%Ur?s$iK zcG!m$oEl{TN@(A_imS2krtT1uK_w(JKawV2RikEz9fSLEp!A2tKhxw<&U@>7vkP8? z7vgFUaeaO)VnjK38a%zL>NUMHM2c`fqgKT?U;vYHe^mm;$pe?MJxJJy)rTQBl zPu?xNiKzYf^#(Mu8zfaOM}7U1mfo3jhpayUHB;V1(COW|ubNls14wrV)>nV50`yuh zx&%@`n_89AA8TE0_R%-EY^EpN_`0Ndd>a2Q@Z!HRJOpZSOJ>n>)!c!lh*ewJx}6*Z zVZ9;%pi$0ZK<)o{SB_6N_x$faE;Bhg41ScLtPwf}2TtXwavu(vKAKE*UlaA`C>s+m zyxxx1vp?$f&Qv;NW!p7g{AVWq^K0tby-RxsJ$vwR@h?E624dkp;Z@BPl-NSMIkEG_ zqpMSt=;@;u*~5Ra(~IWDGkJq|8-8>T{bF|SHxXm$UV-2^IbiMviHK~{_}*O^q!%_t z@W5x!YgXX%yBfiVZD@|`&O3_F_2KeHOLouo=CVzct0U%vAz_0%@T{Gp!F{9T)TjOI zo62byuUJN=Od>Nm) z$pcck^R44+``Pn(#UlXEKFhKyNkhcw#|A#*8A;bt$dn+*eCsY!>lT+k@Zu{T+w0un zm27_;5xphk3lpId6%3)}{^O?&GwwqzTaQgV5Q@aWN1sYlGk=rF4zT~x+IL6874_{Z z5z!-}w}^-mT|_69C{ZFIqJ|)XAi6PzNJ2tLA&8dfqD=HYgJ7ag^lmU1491ul!_@2j z-g4Jn_x|{~uIcKlmI{TcxpJzYMS$qG^@po5ZR^GG%qM^=C^*|^k{pu@>-c}53 z-EFbtpn&du=vsy34v*L%xiZpE5#J39jkhZuLH^{7d+mQo&aW?juXS56&6WV0Y;YgR zcz_@}nIdzf;e9sTMy09$6+9YlQWxUg1-oXn>cp|ZaMYv$%zvIQxh&S|8ZPmX6w#VI z|G2>jGNeODOuvc+^wAc!7K~8%tQoJcZMg>s@f0L(WJytPAM>K_t;mtSZbaJ-M8Sv^ z7gF1<(Srb{xN0K6Nv=*``UaD9-yv8K<%NjpVOOz#>#*uLC@e6i16*#gctK(pQr!A6=w9sY#Q7g%$4>Nlf zxtDKA3bk|z@5w?z7e5d(y_z9@^O~Rqj?LHPAI)*ef_E`eT3u4}na#5!Bd+3Zv z{oeJ=`8++2#vB|hev|IFKz7)i%DkPz>PQOzF(W&ub0uNkHL_EXz11YB`l!kvpS0SB^i z*=P!lYDuRPf44Yx^r5ErK4G}QJUU*>u}Lu`EEvEMNIPPX6l{&22v2#6 z)m+bY`APL-1sSfC8Q8+3)A265%O9)5+4wZdEzcaR*zrlXSg9 z6MAJKE~2f8!xg#xX9{zq`{O+`%dBo!Vf*W3$7IiidAdo~rb;eVgIf$*0p0uklXR?` z=1k_mtMzZFLr;+bq)huY0gUI#Jc`8~75Pc97?!V|DYT3%86bi1I$3lgHSu8zMp`s< zFUNerwGK!BvkhM~4C4DeSmQX@+~OLrZhmnJhHKmKCDLyMpVkph8$?bw*g< zkr~*2I!^GD^YV|KQvf&AK{U#7Q(>)9u&<}dq;u=TC`4)5fGulq=?D{UOd(~4SY!N_ zvvovYY>qA1q{HfCev{9J8g&=)>NxG@f}|6vV#AhkqgN-I$7thxE&b0Zv1JuP7H;PW zKlFCJyxt4psJF-PWm!cq&{)Se3^%(ki``>j;Jp2B^T{YE`Rsqrd`{?|ea*IV|H9j( zSkA;(h^Gv~``L15V$a`=6FRfvLU;&l_Y&%N!PFk^h1s{ffPY>8WGpf`F1@ubbLQ2B z|7U6Tp-_%-1Z@_h7|Id)h=88P_yTUe%()Vufm*`uEw)V~&;P^vfsun5Dqunh0?^3V zFD2Z#dVG8wo&`CvtT*~!aA=4ZV3Z>Jr~LdS>j0Ckp+opof1%kn3<3((H!$dMp&wz9 z4!fIn%T!m;iASYBW>sjTg@pwcfiQH6T^@tIOsOPjWltsP?xyq6O406(4E?>wN|y6PH7?d?GSZn^H7Ld!uUaGtdI zzF0^RZcNYTY5b_XZbqK7m$NNmGIZ=fKR~wCs`cSx@j6{>SOmO`M7(A+4h>mD8vPhI zn*PfH|M(*EEB>NEMU|ZE-1jka*N4g&WTEd2^93OJxR{u+wsK5Nt|Gbm(npO5@&qzWg;JfnHS>(>xZ3HarHIxPnlEA__XqhBhrcBX6RP;VR$br#@oHe9gV_XCY~t)e z=?s8Yx0Z5gPhgx74Uo_j0Co1^#?LF%4d>L{Cl+Hj)a5>`{Qxf1(c=Hv&oCxKY}6UY z<}P!jlk(oV=w%seow35B^aWQtYRi9Jeo)=NVhAEiI*X9vhm#81`h@l(L2a97WCYJzsFh;H;Hw2wCb0DgWgWu z1LbNYXZaOM!jX4wsU$Xy0TEn^O!-nI_UFgdyb)l+{?5E%U@^ z_md#8;op^3Y!4fu*PxD#bcV&LfYXe*WsqWxBLTkz^k+!%HT5wgAOaQ`o$Y47Eo5=r zD!#QH*=K4;y<+5k{t{2)5IVp=hWH)StVykE4FYns7aF)WYl8=~{FkYiu$%BW^GcxO zM~i`ch@(!0u&e_C>^s1bC9gs#^{yNSZ|5H+q-c<*GlLv8URYZT>l#)agpce_0&>04 z1DI$@3@@Vu6nQT0z=kFb`Fz#ckRSmc^z0kCF#U}}(F!fD2W%Ss3&CE0oB0tktR4=K z;X@`IXk=vy{{j042l=`jqr?s2@J2XHcebd_A6>*7&{U4QrJ3jgz-L9UEa*>UGZxJ@ z!=1_o4rad6bY{Clxo%`jXOg~0)1vmdgdW~NMOzL^_s}?wh99WZ1ESHnt}Gz>9}L=1 zdHqd5vX1D;?(u@kkAs^>EL#~1NgX%5P-}lhX<8f6%O-EXh%mmWKql?+4#k%R?-=7G zffAQZV3T^Kv%}~fh`OLTJalo{y8?Im)3|3f4xaOcZ-3Au$qUJB07nTf>9s?(c~on0 z8f2q`Ap5+9y42iRgLD1mP~E+SB;B07WB#zK;`r~ddD7cF9UxM z(8*o7MQ5ODB(UnNu(8b90h@v(W+m>>#Z%>-?$epBwH&N6VFJ7SwKF^DCXHQ@ULZQ4 z@}|9Da-3JrngJ7l{XxK@R_A8>@`;`l>=c45SuG@@#)pS1Bki)#MCjna9D@d(0dZvs zqq1WAZyp6)Z|;N{H+RmnBK}ra1jeQQW@)ujc3RGlIHi0x7wOF-cw{6I$FYMKRNlwb zE}*slMt%*9Qvv0GPAUHa2)^Zr7E?YuzqPC96~5QsP&X>L^fzydIhT5eZ|%ymGaUT7Jmu4yG*c5o-jV5v0PS#m0{n^=O| z^S~Ug1vb+N85sO*tARA6p8yXa@x@52-FPvTjjz>F*#e}5cy@XBhLZ`6vX*%j!ehm0L${;Zd_f3GayNi(Nt}%F%W^8 zx|CF>dCHrF83`wWova0udLF0!4A_Z-ogW%dZ|x)X8VdXX26e>4zKg|~UyqskOEA<$ z(>0CVdcL@t(?|GhC7#B^Ol0xlso}!uo>SKr`Zo18z#Ec$olX zVDJlO3hl*Euo9I6a@e>%ONvNt$VuvLW2{zPbI!nVC|oo*KiwlFAid>qvO4A~g^!R|xMOqf)Qz+MDB{MDq+%Rl zbG4D!shASFOO3`Yij+37Xdosx#SEKt?KjUL3{jhs`633Ofy`jnn!vH^)~qEozFB~c*@CKZ4cmmD z!-i3+Q@%5zPw}{V$HQ=uxR{`%V3tv%sF!)<&m_zaU7keLk<_)~WWn88IesleohC9O zn+E2~?>#YZ4P{7tv$+OkX{MUQ?4XKw>E)#GHZH4Fe`Dfib`9ILsD7F~b^Ka1+;Ryu zL$`@$Cclmnoj*rxWL?;JVzs4*H;6OrYw+E4-N!!5t=QHjM6S7ArDbm+P+b}uo|Neh zx`Q+WS#6c;U$f+eGlzXH3rR4?smy*G3aTOSh2OQ9y9he9Y{r%zy4z_pwAB!lLc^LL zIn_vGPwn}p=z!cm5~+6BSGX z<3PD48zLUceo*-O?o+2i(1sEDQJN0oh~g`{?BMK>lBjeDor9iem*re3ot1K`VLpu8 zTfVY}?jpN%?avpTLIqH+hBJn6#J?SZX}F^6Cr*!qHkZ(V6nh;V6vGuG?JGzN`psMv z0{e-(*#}%043+=SoBuxq>GB`9VV{)=o$-Bgz9H~Ac$zBet?gO8C+}kfqD5yON%qQ2 z95K5)G+xK@{Ukda&&1!@N}LZlTOm{Fpoh3I)F;<>KeEa>)n~VrtB1R)_kPaz_)x*b z4>q|z>M4+OP9P|^$0c&;f-gQqyshdw-Fc-dt;F)sf!ZNyc{EF-|Cry1_oS-rUL0%GoCAHBpL20o>hmA zl%|vET`x{Mz+iqpW8^sRqKm-Op0|7egW9UxoSt+*3qh>-clB|Ui+G|`hS-Fb8i@NK zJ-U)b6P>M}AJOFi#lPeW-djH;=uAzi?DFf3+SCx}jD~+R!vQr-=##v6ga7su%r@uc z{)ha;{Ng?2b)h#;%)YZc|IVcQoxOUCL3jC^f?TY?vp5kssfsU?Nh!u2vS)u^JOmcW zrNHu_0s4p435$D@&CSg-9T3P~lca=1n3k3n#^)rpXB!TOo5Yp^^bBol+B+&?d{Bk+1`^`HNe#mX0&|{-lq=a=u?N0$%~KfYcyog-~nAMU%x*;qFC8rM3;6v zqCF^kOnkI+Tog(HB&(Ic>g%PDa)i4U9G9q4Dg$dnTz%2&t9uX;d6kBjI%K_ysr3Dg?<=6-xz_i2#t4l!C zX%hj5!ZsjMiVpA^cs$%3x1AZ#2lJk5IuF{OB9i1e8}6w|h-%!p_mb-K29<1^B4*Qvvv} z6u4T>INCQV`O?xv_O6TM0Ll0g)OH*O*^8>BDf-_vtYkAc)OmaDKB}mW_Uf9KE2@`t z@n9#jW+}c_8$ACJp`*NRD>+qVO^p5=FxEEWD2(im`jY8PH$`g(m5)~%*0n&V9mgd5 zOQ*YYKgX0g<6XfkW_k58yUUq|TI9s8=9naid;92;vhNhM5_jr^5v^0zXt2s+y{QN~ z=GaUAguupdw}`f2PZ_UcOGm&kx_k@P=-ZA`Qz`n;6E#(m(luj5J$XLM!gks(C<+i0 zKI^!|W5`F(3)g_a8XVuTVK;Z(?zy;s4IU@X!ZahElhk&%p(<`vU!oe4Q=c^%D@k99 zL%@2BfKzB>8NE6G_*E@A;8bIv9BsjN){Ewy8wU1SYtOR<=rto=DiT|(#&`&T(jdfL zs>W$jODvfMnM=bQ)fuKmsH;fw(bG&2HO9KFRu1+CDZ^No@b_!eM2sI_@KhA>+ODZ{ zUqc7bYS&O?5KUXwT~f%cZwLz&*PYyr~decuMDTV>%m1-XvrjdxN`_bKX564<} zl+kTfR8U-u5mMz}Bji6r<-dJEZ!j`2wZ*>|lqh0gVE*+VS~I?)`aeW#bEEg9)z1Hu z*6y-|T<6yxXAJ4ocxcU_^p{D~`lcQIE^BVb!KKK@Ul-|LE`AnH1p;@m$*)tbtgK87 z^Yimz^YimaGMRix4b=979`6I-Fc{2kQ&SW8rC1vTvXmkX zDo10nLFAC!p1WB+w{s{gHTQ|^HNoQR_RT5k_V)IU23uDU_M5hIQ86(~?%ySytnx3X zciu_9_;WyLN(8P<7jYv#iJHNQl-81CvdJf>u^`TJd5J!v@C~A^bT7-fI~d!xuic z>23Y8zok;TqH)W+ItvLWhz&**A~eR7*AF1-FnOW|GSeIPoO%~hH?@%~1IHU=tZ8W@ zfX81lMR6^BJrlv+{L<8Iq=rg#DF|rw8Qtz$xnxz+5jky#v8&J3e2FoXIb1-N_Lc3f z`>sET`4q1IzcE0+MoY*t0HFpf0Mo+ zf9W7Zg)8C;aeax_yd(%a-r?P@mDeD;A7)}E!I*SFTFp1)IG}QV;rA3-tu1BARujI3 z>4f~4oQdl&>i}!O2|Lh~9nnwwxb!4W1|aPf?@cF^C=DV4g9Ij(W1YA>5hi z6}@5Dt1lfzk<0hRad*`$CCtE6A}#;hNd3P9>BX)f7ITAuKbU`f((L;WcJDV__#eXV zs2Uf88t17Sep1LePBD=i=)0rAfmn^<23dbC2B-jU2XU`q3eSJ~>BjueZwB3o!6Uw4 zqyL|K@3+j2G4bl38w8(ZUGFfxedEE&DxYk}fCtn3Fwne&pT_C=*p@G8m_Fb%8$T5!9IUo1 zBotqR4JAIIYN1r~YGBJ!W@$1XMsk1-fZfn}UvOPhJTW`gpwlW=z)eS$P4O=%mPwUc zk@;<$N}QqFk2xi#l32FymUJ6HtjBeuebLE$*0-;H8J@9J`{wX2qdM)DwSNgm+(F`* zhdafWrI#i4e+DYEK98fHA&R7fPDfwVZDgvry63eF_-5aU_L>HSkt@gv7J4Bl+c5o4%(GM1nsZ)!9Y2OSk@RzV~pIuD!3d%(?%L*hc>Q z9U*9YE%EPZUK{C4T5&3|n6eo5yA{Lk)G_w~W{ZzWu`=7P%#`~P<52;2&hgL67-<|% zQ*}4|AHNBA0%j8&Piebx&J?M^9xN&J6>Ij1SbVB3b5^SPTr^RA2REl^%&f@o!Fn~| zfff_xt~M#Qt($P`1DUtPI$QP4Bk5L1=WB>Lu0w9gpyzy)l(mXe1;G$O3FtZRE$?+i z58ms+bRd8-GMAO?f7_`k$n5CmGkm9pCHt<1 zOaEe-`QQL!a`V0^7hh0gSMNFDWfs~{5X@Oede!I8o1)p7kXayQTz$%JQ%9jh;PyPz z3RUoOXVP=#eJcy$ZPi=suS}U$-kT6Lr{qe`HmOxODN%eU>D6iW;pBe9A)Rg$GcD#mPj6FC%Zp-`XkL2x+JjUo%5b%{++$UgWtZVn{up7`D_nAve9veP~Y|_LR)_4C*^Le zclw7d;E!k3=6D{D$jKiy8`*S^POCU8zFomLUAOdAixDPE81Ak~KUHmWY6Cm=0TVMW z5uMExya5fC{mQ7~Ce?M$uSM56-p4G^H#||3=*u#4hYWo#0=fK4V5Wo){L^`VX3EDP zkj)WC`l;3$Y;#(hlJ<;!$y;w=Li|+gK=LAYJ-UG_J3#c;Z?d0N!7%UY@=MDQ#x^G9 z6*NPhu}<)kcUyh|Nas;P*OIqY|2dwM_I})i3i45EZX?X94lZF2(qWC2Zm;%=+ACB} zDjl8V!2I8p95#TBj%L&MOMt1wSy{qmjV><5j2bh{y|XG@%su2;&CHiWdfI}!r)twu z`NQ11<=%1%Fz+ZRU`{vc33|4}H~14OVfsB^uDh^Ly=vJA!_;}_Ch6LUSyvYZk1Av8 zdezKc$`4)2AGwoJqm%B7cvJiqC3=u4xY_xVKUTgQJrlNi$3l-Bn_6-GdhAjWi)>em zoc&MBuj)#WeM7xXr-}G`KRIw$O&U05evG%2rJZf-fNz+kN!lzr$lG@s@g4cF7?Ph^ zpb9iH3p&!D)tZL}BptRBXFKYWarM90a1=?mcQtKp?*mymgp41|IC|bxzjI^J!@5M- zw!rx_)}Ng{39U=mxqNujR4ZR4j(EZAtoZ%Tvwkn+Of(v=ra6({;6C;Z|KV#-pQ$?a zxLcq5p@Z<_8jHP1#TGl(pkLZ?E#o$tWtSt&9$DE?D?NMT9=5odCyyjtm}og;5xD+p zOj&V%XF?-Eel^St@aAmg*ZJ1dGTMp$^9P;6r~;YHQk}%ecnO2H+@ur+K*f3Ki6@N6 zP{m%u(@Lo%`AvX2DI~&~a?^C})B*qB$rJ|CG(FiXYiF$XVZx`J7eN=Crs{K)ltXmwe3+_Gw3S;kg(0rMHVW z<6uoWEZ@!Zew-iL?lzBT^~hYuSX1l%NW}s_IWtk19e=)fCExvUSxn$I-gdoM>eS7V zJ0>+(pP%^_=Kd*aR_QTsp38T80kJ6*_0p8xr02%RqSoY=9f5O8edHazkvpZTy@P2p z>H4SVe9mV$9~x$JYG*%Oa#?6JD_>{O`jys|_)LgpP($m9{KkiwYqjO?Z(myB6u7#M zU+Vg@OXuNr1o8wrM8;(19p-Y4e0@*j8@$6|9jJV82YTy{^OVM-`O{2p|IC*%Ad{S= zMtIytOZPnsVF7n<6$#+m7=CHW=@KdQuSY+AE&~r^Uos@*Ce;dkxiW$?*Opp+0h_`z zkKBn&&eBs|*L9K_2s3Mrke`&Y_>sbx%a%I+Rz4)$rin9M-mO<6P+}!?NILp0&{v2F zcZT_qYUul;2ZI`n#c^$_eGP8tz-f!Fr%aX?W$u=Q^Dlei=PX&?pLL21`u1p`(aK|| z``o=qRKdvWb0GpO>26;Q1+DOvQaMv6n;Xq9yeSr*euC}Nepm0Id40%#8gtKrQMaLL zz}+tTzD*cUpn&a!z84{`E1~9Y%v@Ae8Aa}J_(|h$QMWj+a5nv3pLN^J@H6IJHly~O zyP5alc%>(Lf7Rp1P$x*d@*P+mD4-Y6BCJ6|T`=rzV>DNs_yM-Taj^-`-=yehXVhP& zrsgDlQ}cRj5MeF!ceK$#J#xhy;dHpt%l6}y{+*0IZgiMdNoC|vfu&i?mlu#&c~kX` zEiY0^nRS6;=aY?(^i1Z3i-s9G?9tpcCPJMl0M^x?jIwblW)~wIuxeBVelPC=dLb3S zw)sO&Kz?QJi&>B{@IVHly2o;;(Cllq%)ySWoTi(($zY{s$TQWvtQcsjxFG#Xi4?2@ z;XIsbiRiXJGm;x2Xs*WNAt{&&fRaPFf(B~%+lp$cuD%ag5oMD13vXsRV$sd`*j;Tz z6=-{Oa5iGJh0mz3*3w52Ib#xCBsSEMgTxkYJ!!&P(*-@MO9k2#&%HoSJORweuWFEp ziK%W{KQZhL&=0*TPwqL&weuvZgz8%(P!r)lNQY&9{EeqlWVV&vyj8{?eHUxIKUl*d zPY}U;i%`3Jvj6L36|&%_Ry8TG$Kcc=^_vNFL*(n?=~4Z-NaUmf4^DJk%p8lzSf(?r zw(%B{5Jfu0i5^{l!^-CtxvBRr?p0@oy3+MxUEhuVe)RVxThcYr-sJ2~KxWt*tLa-k zU0xM=N}Yq&Zd&iGXV0xf#MsBLj! z?RR$1AEwKlf!UW^kV1WFQXdv;h3)4Ze>$ez0efpMg|7HN%+~kP=~9n(cM|B}`nGIl zp%(Qnb;F9yBsCMyj+G?_GKN|pOH@65JI~|9_5~H2mD~h9t&*_!GDBm2qHc{Iv|vB0 z@C{Y*`*ROYPrR?*FK*J2s=QKA?BM^~er5IuWUsH3NbgU&@jFvrR1KqbIcl%WpZ!QH zP(Nc{+ld44N_75J?)|76e_(3UY6Yf54~IXOCv|vnXX_481km~MM!VIdlIh#Yu=5@r z+am9HY;;$%O;`FbA4yK<_ouwPd zZ@V4(jfl!TXVCMyO(dz%#h%=|YJYa;<}mt}Ma{ICT$Ab>48Qo5OPQV1F+&`F%#bT_ z=}1r=sr9v@oqJxuqfm1-nKD_!j3}G-O2I{~-X@-xEgw7@e#t7bGC%s(;(7|DIcqpn zd-@z-bG*+H*G|;J>oc6DtpVp0^2zsRr5~Oa&*tWm$&1>R_)k~>d2g4 z?5qqhyV?4qhCS1r#$dYx_!bx+_~BhkhbIL&o!Ge2%Pyrj;dX( zDvxeObNN?2+m(f+wOIq-_KpWi9(>*eTv&0kanPY9G;|p6BKYCilU`!x0&j$>xZ6yD y>DnVgES7Gr7r^T;MLTeiIT#P*4ValCS<84sq%<<}AHRuVFuh}WyZWZvtN#T==jMX| literal 0 HcmV?d00001 diff --git a/Help/概要.png b/Help/概要.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f9861e9b8e4f12d3f6a1d6ca1b53eb53e1852e GIT binary patch literal 26773 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 literal 0 HcmV?d00001 diff --git a/Instance.cpp b/Instance.cpp new file mode 100644 index 0000000..1148d71 --- /dev/null +++ b/Instance.cpp @@ -0,0 +1,213 @@ +// Instance.cpp : CInstance ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ + +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "Instance.h" +#include "profilesection.h" + +///////////////////////////////////////////////////////////////////////////// +// CInstance + +CInstance::CInstance() +{ + // ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚̐¶¬ + m_pMainWindow = NULL; + if(m_pMainWindow->CreateInstance(&m_pMainWindow) == S_OK){ + m_pMainWindow->AddRef(); + // ƒI[ƒo[ƒ‰ƒbƒvƒEƒBƒ“ƒhƒEƒŠƒXƒg‚ɒljÁ + m_lstOverlappedWnd.push_back(m_pMainWindow); + } + // ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒOƒCƒ“ƒ^[ƒtƒFƒCƒX‚̐¶¬ + m_pCommDlg = NULL; + if(m_pCommDlg->CreateInstance(&m_pCommDlg) == S_OK){ + m_pCommDlg->AddRef(); + // ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚ðƒRƒ‚ƒ“ƒ_ƒCƒAƒƒOƒCƒ“ƒ^[ƒtƒFƒCƒX‚ɐڑ±‚·‚é + if(m_pMainWindow){ + IUnknown* pUnk = NULL; + if(m_pMainWindow->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + CComVariant varUnk(pUnk); + m_pCommDlg->SetMainWindow(varUnk); + } + } + } + // ƒEƒFƒCƒgƒJ[ƒ\ƒ‹EƒJƒEƒ“ƒg + m_dWaitCursor = 0; +} + +void CInstance::FinalRelease() +{ + ATLTRACE("CInstance::FinalRelease\r\n"); + // ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚̉ð•ú + if(m_pMainWindow){ + m_pMainWindow->Release(); + m_pMainWindow = NULL; + } + // ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒOƒCƒ“ƒ^[ƒtƒFƒCƒX‚̉ð•ú + if(m_pCommDlg){ + m_pCommDlg->Release(); + m_pCommDlg = NULL; + } + // ƒ|ƒbƒvƒAƒbƒvƒEƒBƒ“ƒhƒE‚̉ð•ú + list*>::iterator p = m_lstOverlappedWnd.begin(); + while(p != m_lstOverlappedWnd.end()){ + (*p)->Close(); + (*p)->Release(); + p = m_lstOverlappedWnd.erase(p); + } +} + +STDMETHODIMP CInstance::get_Dialog(VARIANT *pVal) +{ + // ƒRƒ‚ƒ“ƒ_ƒCƒAƒƒOƒCƒ“ƒ^[ƒtƒFƒCƒX‚ð•Ô‚· + ::VariantInit(pVal); + if(m_pCommDlg){ + IUnknown *pUnk = NULL; + if(m_pCommDlg->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + return S_OK; +} + +STDMETHODIMP CInstance::CreateFrame(VARIANT *pvarUnk) +{ + ::VariantInit(pvarUnk); + // ŽQÆƒJƒEƒ“ƒg‚ª1‚‚µ‚©‚È‚¢ƒEƒBƒ“ƒhƒE‚Ì”jŠü‚ðs‚¤ + list*>::iterator p = m_lstOverlappedWnd.begin(); + while(p != m_lstOverlappedWnd.end()){ + if((*p)->m_dwRef == 1){ + // ŽQÆƒJƒEƒ“ƒg‚ª1‚µ‚©‚È‚¢ = ‚±‚̃Nƒ‰ƒX‚µ‚©Žg‚Á‚Ä‚¢‚È‚¢ = •s—v + BOOL bVisible = false; + (*p)->get_Visible(&bVisible); + if(!bVisible){ + // •\Ž¦‚³‚ê‚Ä‚¢‚È‚¯‚ê‚ΏÁ‚µ‚Ă悵B + (*p)->Release(); + p = m_lstOverlappedWnd.erase(p); + continue; + } + } + p++; + } + // ƒEƒBƒ“ƒhƒE‚̐¶¬ + CComObject* pNewWnd = NULL; + if(pNewWnd->CreateInstance(&pNewWnd) == S_OK){ + pNewWnd->AddRef(); + pNewWnd->put_WaitCursor(m_dWaitCursor); + m_lstOverlappedWnd.push_back(pNewWnd); + // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̎擾 + IUnknown* pUnk = NULL; + if(pNewWnd->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + } + } + return S_OK; +} + +STDMETHODIMP CInstance::WaitEvent(VARIANT varTim, VARIANT *pvarUnk) +{ + ::VariantInit(pvarUnk); + // ‘Ò‹@ŽžŠÔ‚̎擾 + DWORD sleeptim = 1000; + CComVariant tim; + if(tim.ChangeType(VT_I4,&varTim) == S_OK){ + sleeptim = (DWORD)tim.lVal; + } + if(sleeptim == 0){ + sleeptim = INFINITE; + } + // ‚·‚ׂẴ|ƒbƒvƒAƒbƒvƒEƒBƒ“ƒhƒE‚̃Cƒxƒ“ƒgƒnƒ“ƒhƒ‹‚ðŽæ“¾‚·‚é + HANDLE hEvent[MAXIMUM_WAIT_OBJECTS] = { NULL }; + HWND hWnd [MAXIMUM_WAIT_OBJECTS] = { NULL }; + CComObject* pOverlapped[MAXIMUM_WAIT_OBJECTS] = { NULL }; + int count = 0; + int n = 0; + list*>::iterator p = m_lstOverlappedWnd.begin(); + while(p != m_lstOverlappedWnd.end()){ + n = count; + (*p)->SetWaitParam(&count,hWnd,hEvent); + for(;n 0){ + DWORD ret = pOverlapped[0]->MessageLoop(sleeptim,count,hWnd,hEvent); + if(ret > 0 && ret <= (DWORD)count){ + if(pOverlapped[ret-1]){ + // OVERLAPPEDWINDOWƒIƒuƒWƒFƒNƒg‚ւ̃Cƒ“ƒ^[ƒtƒFƒCƒX‚ð•Ô‚· + IUnknown* pUnk = NULL; + if(pOverlapped[ret - 1]->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + } + } + } + } + return S_OK; +} + +STDMETHODIMP CInstance::get_MainFrame(VARIANT *pVal) +{ + ::VariantInit(pVal); + if(m_pMainWindow){ + IUnknown* pUnk = NULL; + if(m_pMainWindow->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + return S_OK; +} + +STDMETHODIMP CInstance::get_WaitCursor(short *pVal) +{ + *pVal = m_dWaitCursor; + return S_OK; +} + +STDMETHODIMP CInstance::put_WaitCursor(short newVal) +{ + m_dWaitCursor = newVal; + // ‚·‚ׂẴ|ƒbƒvƒAƒbƒvƒEƒBƒ“ƒhƒE‚ɃEƒFƒCƒgƒJ[ƒ\ƒ‹’l‚ðÝ’è‚·‚é + list*>::iterator p = m_lstOverlappedWnd.begin(); + while(p != m_lstOverlappedWnd.end()){ + (*p)->put_WaitCursor(newVal); + p++; + } + return S_OK; +} + +STDMETHODIMP CInstance::get_Keyboard(VARIANT vk, BOOL *pVal) +{ + CComVariant varVk; + if(varVk.ChangeType(VT_I2,&vk) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + *pVal = (GetAsyncKeyState(varVk.iVal) & 0x8000)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CInstance::get_MousePosX(short *pVal) +{ + POINT pt; + ::GetCursorPos(&pt); + *pVal = (short)pt.x; //UNDONE: ¸“x‚ª—Ž‚¿‚Ä‚¢‚éB + return S_OK; +} + +STDMETHODIMP CInstance::get_MousePosY(short *pVal) +{ + POINT pt; + ::GetCursorPos(&pt); + *pVal = (short)pt.y; //UNDONE: ¸“x‚ª—Ž‚¿‚Ä‚¢‚éB + return S_OK; +} + +STDMETHODIMP CInstance::get_Version(double *pVal) +{ + *pVal = 0.91; + return S_OK; +} diff --git a/Instance.h b/Instance.h new file mode 100644 index 0000000..7a47b05 --- /dev/null +++ b/Instance.h @@ -0,0 +1,145 @@ +// Instance.h : Declaration of the CInstance + +#ifndef __INSTANCE_H_ +#define __INSTANCE_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include +#include +#include "OverlappedWindow.h" +#include "commdialog.h" + +///////////////////////////////////////////////////////////////////////////// +// CInstance +class ATL_NO_VTABLE CInstance : + public CComObjectRootEx, + public CStockPropImpl, + public CComControl, + public IPersistStreamInitImpl, + public IOleControlImpl, + public IOleObjectImpl, + public IOleInPlaceActiveObjectImpl, + public IViewObjectExImpl, + public IOleInPlaceObjectWindowlessImpl, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IPersistStorageImpl, + public ISpecifyPropertyPagesImpl, + public IQuickActivateImpl, + public IDataObjectImpl, + public IProvideClassInfo2Impl<&CLSID_SeraphyScriptTools_Instance, &DIID__ISeraphyScriptTools_InstanceEvents, &LIBID_SERAPHYSCRIPTTOOLSLib>, + public IPropertyNotifySinkCP, + public CComCoClass +{ +public: + CInstance(); + void FinalRelease(); + +DECLARE_REGISTRY_RESOURCEID(IDR_INSTANCE) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CInstance) + COM_INTERFACE_ENTRY(ISeraphyScriptTools_Instance) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(IViewObjectEx) + COM_INTERFACE_ENTRY(IViewObject2) + COM_INTERFACE_ENTRY(IViewObject) + COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless) + COM_INTERFACE_ENTRY(IOleInPlaceObject) + COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless) + COM_INTERFACE_ENTRY(IOleInPlaceActiveObject) + COM_INTERFACE_ENTRY(IOleControl) + COM_INTERFACE_ENTRY(IOleObject) + COM_INTERFACE_ENTRY(IPersistStreamInit) + COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) + COM_INTERFACE_ENTRY(ISpecifyPropertyPages) + COM_INTERFACE_ENTRY(IQuickActivate) + COM_INTERFACE_ENTRY(IPersistStorage) + COM_INTERFACE_ENTRY(IDataObject) + COM_INTERFACE_ENTRY(IProvideClassInfo) + COM_INTERFACE_ENTRY(IProvideClassInfo2) +END_COM_MAP() + +BEGIN_PROP_MAP(CInstance) + PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4) + PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4) + PROP_ENTRY("Caption", DISPID_CAPTION, CLSID_NULL) + // Example entries + // PROP_ENTRY("Property Description", dispid, clsid) + // PROP_PAGE(CLSID_StockColorPage) +END_PROP_MAP() + +BEGIN_CONNECTION_POINT_MAP(CInstance) + CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink) +END_CONNECTION_POINT_MAP() + +BEGIN_MSG_MAP(CInstance) + CHAIN_MSG_MAP(CComControl) + DEFAULT_REFLECTION_HANDLER() +END_MSG_MAP() +// Handler prototypes: +// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); +// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); +// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); + + + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid) + { + static const IID* arr[] = + { + &IID_ISeraphyScriptTools_Instance, + }; + for (int i=0; i*> m_lstOverlappedWnd; + CComObject* m_pCommDlg; + CComObject* m_pMainWindow; + int m_dWaitCursor; +}; + +#endif //__INSTANCE_H_ diff --git a/Instance.rgs b/Instance.rgs new file mode 100644 index 0000000..4604171 --- /dev/null +++ b/Instance.rgs @@ -0,0 +1,35 @@ +HKCR +{ + SeraphyScriptTools.Instance.1 = s 'SeraphyScriptTools.Instance Class' + { + CLSID = s '{D952EC87-3C30-46CC-879E-06AC42A006BC}' + 'Insertable' + } + SeraphyScriptTools.Instance = s 'SeraphyScriptTools.Instance Class' + { + CLSID = s '{D952EC87-3C30-46CC-879E-06AC42A006BC}' + CurVer = s 'SeraphyScriptTools.Instance.1' + } + NoRemove CLSID + { + ForceRemove {D952EC87-3C30-46CC-879E-06AC42A006BC} = s 'SeraphyScriptTools.Instance Class' + { + ProgID = s 'SeraphyScriptTools.Instance.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Instance' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + ForceRemove 'Control' + ForceRemove 'Insertable' + ForceRemove 'ToolboxBitmap32' = s '%MODULE%, 116' + 'MiscStatus' = s '0' + { + '1' = s '132497' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + 'Version' = s '1.0' + } + } +} diff --git a/Layer.cpp b/Layer.cpp new file mode 100644 index 0000000..cfb3da8 --- /dev/null +++ b/Layer.cpp @@ -0,0 +1,399 @@ +// Layer.cpp : CLayer ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "Layer.h" +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CLayer + +STDMETHODIMP CLayer::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ILayer + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +void CLayer::Draw(CDC dc) +{ + // ƒhƒ[ƒCƒ“ƒOƒf[ƒ^[‚Ì•`‰æ + if(m_bVisible){ + // ƒyƒ“Aƒuƒ‰ƒV‚̐ݒè + HPEN hPen = CreatePen(PS_SOLID,0,COLORREF(m_dwColor)); + HBRUSH hBrush = CreateSolidBrush(COLORREF(m_dwFillColor)); + HPEN hOldPen = (HPEN)SelectObject(dc.m_hDC,hPen); + HBRUSH hOldBrush = (HBRUSH)SelectObject(dc.m_hDC,hBrush); + COLORREF oldColor = SetTextColor(dc.m_hDC,COLORREF(m_dwFontColor)); + // ƒtƒHƒ“ƒg‚Ì‘I‘ð + int fntsiz = m_nFontSize; + if(m_bFontTextMappingMode){ + //DPtoLP(hdc,&fz,1); + HWND hWnd = GetDesktopWindow(); + HDC hdc = GetDC(hWnd); + long height_mm = GetDeviceCaps(hdc,VERTSIZE) * 10; + long height_px = GetDeviceCaps(hdc,VERTRES); + fntsiz = MulDiv(fntsiz,height_mm,height_px); + ReleaseDC(hWnd,hdc); + } + HFONT hFont = CreateFont(fntsiz,0,0,0,0,false,false,false,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_DONTCARE,m_szFontName); + HFONT hOldFont = NULL; + if(hFont){ + hOldFont = (HFONT)SelectObject(dc.m_hDC,hFont); + } + // •`‰æƒf[ƒ^ + EnterCriticalSection(&m_objDrawingDataProtection); + list::iterator p = m_lstDraw.begin(); + while(p != m_lstDraw.end()){ + (*p)->Draw(dc); + p++; + } + LeaveCriticalSection(&m_objDrawingDataProtection); + // ƒIƒuƒWƒFƒNƒg‚̉ð•ú + SelectObject(dc.m_hDC,hOldPen); + SelectObject(dc.m_hDC,hOldBrush); + DeleteObject(hPen); + DeleteObject(hBrush); + SetTextColor(dc.m_hDC,oldColor); + if(hOldFont){ + SelectObject(dc.m_hDC,hOldFont); + DeleteObject(hFont); + } + } +} + +void CLayer::FinalRelease() +{ + ATLTRACE("CLeayer::FinalRelease\r\n"); + // •`‰æƒf[ƒ^[‚Ì”jŠü + Clear(); + // ƒNƒŠƒeƒBƒJƒ‹ƒZƒNƒVƒ‡ƒ“‚̉ð•ú + DeleteCriticalSection(&m_objDrawingDataProtection); +} + +STDMETHODIMP CLayer::Text(VARIANT x,VARIANT y,VARIANT text) +{ + CComVariant str; + if(str.ChangeType(VT_BSTR,&text) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + long lx = GetMappedValue(x); + long ly = GetMappedValue(y); + int len = SysStringByteLen(str.bstrVal); + LPSTR pBuf = new CHAR[len+1]; + WideCharToMultiByte(GetACP(),0,str.bstrVal,len,pBuf,len,0,0); + pBuf[len] = 0; + AddDrawData(new textdata(lx,ly,pBuf,m_bTextMappingMode)); + delete[]pBuf; + return S_OK; +} + +STDMETHODIMP CLayer::TextBox(VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey, VARIANT text, VARIANT fmt) +{ + CComVariant str,cfmt; + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + UINT ufmt = 0; + if(cfmt.ChangeType(VT_I4,&fmt) == S_OK){ + ufmt = cfmt.lVal; + } + if(str.ChangeType(VT_BSTR,&text) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + int len = SysStringByteLen(str.bstrVal); + LPSTR pBuf = new CHAR[len+1]; + int cnt = WideCharToMultiByte(GetACP(),0,str.bstrVal,-1,pBuf,len,0,0); + pBuf[cnt-1] = 0; + AddDrawData(new textboxdata(lsx,lsy,lex,ley,pBuf,ufmt,m_bTextMappingMode)); + delete[]pBuf; + return S_OK; +} + +STDMETHODIMP CLayer::Circle(VARIANT x, VARIANT y, VARIANT radius) +{ + long lx = GetMappedValue(x); + long ly = GetMappedValue(y); + long lr = GetMappedValue(radius); + AddDrawData(new circledata(lx,ly,lr,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::Line(VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey) +{ + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + AddDrawData(new linedata(lsx,lsy,lex,ley,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::Box(VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey) +{ + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + AddDrawData(new boxdata(lsx,lsy,lex,ley,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::Arc(VARIANT x1, VARIANT y1, VARIANT x2, VARIANT y2, VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey) +{ + long lx1 = GetMappedValue(x1); + long ly1 = GetMappedValue(y1); + long lx2 = GetMappedValue(x2); + long ly2 = GetMappedValue(y2); + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + AddDrawData(new arcdata(lx1,ly1,lx2,ly2,lsx,lsy,lex,ley,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::Picture(VARIANT unk, VARIANT x, VARIANT y, VARIANT w, VARIANT h) +{ + CComVariant cUnk; + IPicture* pPicture = NULL; + if( cUnk.ChangeType(VT_UNKNOWN,&unk) != S_OK || + cUnk.punkVal->QueryInterface(IID_IPicture,(void**)&pPicture) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + long lx = GetMappedValue(x); + long ly = GetMappedValue(y); + int width = -1; + if(w.vt != VT_NULL && w.vt != VT_ERROR && w.vt != VT_EMPTY){ + width = GetMappedValue(w,-1); + } + int height = -1; + if(h.vt != VT_NULL && h.vt != VT_ERROR && h.vt != VT_EMPTY){ + height = GetMappedValue(h,-1); + } + AddDrawData(new picturedata(pPicture,lx,ly,width,height,m_bTextMappingMode)); + pPicture->Release(); + return S_OK; +} + +STDMETHODIMP CLayer::FillBox(VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey) +{ + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + AddDrawData(new fillboxdata(lsx,lsy,lex,ley,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::FillCircle(VARIANT x, VARIANT y, VARIANT radius) +{ + long lx = GetMappedValue(x); + long ly = GetMappedValue(y); + long lr = GetMappedValue(radius); + AddDrawData(new fillcircledata(lx,ly,lr,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::FillArc(VARIANT x1, VARIANT y1, VARIANT x2, VARIANT y2, VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey) +{ + long lx1 = GetMappedValue(x1); + long ly1 = GetMappedValue(y1); + long lx2 = GetMappedValue(x2); + long ly2 = GetMappedValue(y2); + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + AddDrawData(new fillarcdata(lx1,ly1,lx2,ly2,lsx,lsy,lex,ley,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::FillRBox(VARIANT sx, VARIANT sy, VARIANT ex, VARIANT ey, VARIANT w, VARIANT h) +{ + long lsx = GetMappedValue(sx); + long lsy = GetMappedValue(sy); + long lex = GetMappedValue(ex); + long ley = GetMappedValue(ey); + long lw = GetMappedValue(w); + long lh = GetMappedValue(h); + AddDrawData(new fillrboxdata(lsx,lsy,lex,ley,lw,lh,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::Polygon(VARIANT cx, VARIANT cy, VARIANT arrayPt) +{ + long lx = GetMappedValue(cx); + long ly = GetMappedValue(cy); + VARTYPE vt = VT_EMPTY; + SAFEARRAY* pArray = GetArrayFromVariant(arrayPt,&vt); + if(!pArray || vt != VT_VARIANT){ + return DISP_E_TYPEMISMATCH; + } + POINT* pPt = NULL; + long lb = 0; + long ub = 0; + long lb0 = 0; + long ub0 = 0; + int dm = SafeArrayGetDim(pArray); + SafeArrayGetLBound(pArray,1,&lb0); // ¶‘¤‚Ì“Y‚¦Žš + SafeArrayGetUBound(pArray,1,&ub0); + SafeArrayGetLBound(pArray,2,&lb); // ‰E‘¤‚Ì“Y‚¦Žš + SafeArrayGetUBound(pArray,2,&ub); + if(dm == 2 && lb == 0 && lb0 == 0 && ub0 == 2 && ub > lb && ub > 2){ + // ”z—ñ‚ÌŽŸŒ³A”͈͂ª—LŒø‚Å‚ ‚éB + // ‘½ŠpŒ`‚ðì¬‚·‚邽‚ß‚É‚Í’¸“_‚Í3‚ˆȏã•K—vB + pPt = new POINT[ub + 1]; + long idx[2]; + for(int cnt = 0 ; cnt <= ub ; cnt++){ + // VARIANT‚Ì”z—ñ‚Å‚ ‚é + CComVariant tmpX,tmpY; + idx[1] = cnt; + idx[0] = 0; + SafeArrayGetElement(pArray,idx,&tmpX); + idx[0] = 1; + SafeArrayGetElement(pArray,idx,&tmpY); + pPt[cnt].x = GetMappedValue(tmpX) + lx; + pPt[cnt].y = GetMappedValue(tmpY) + ly; + } + } + if(!pPt){ + // ”z—ñ‚ÌŽí—Þ‚ª‚È‚ñ‚¾‚©•ª‚©‚ç‚È‚¢B + ErrorInfo(IDS_ERR_NEED2DIM); + return DISP_E_EXCEPTION; + } + AddDrawData(new polygondata(pPt,ub,m_bTextMappingMode)); + return S_OK; +} + +STDMETHODIMP CLayer::Clear() +{ + // ƒhƒ[ƒCƒ“ƒOƒf[ƒ^[‚Ì”jŠü + EnterCriticalSection(&m_objDrawingDataProtection); + list::iterator p = m_lstDraw.begin(); + while(p != m_lstDraw.end()){ + delete *p; + p = m_lstDraw.erase(p); + } + LeaveCriticalSection(&m_objDrawingDataProtection); + return S_OK; +} + +void CLayer::AddDrawData(drawdata *pDrawData) +{ + // ƒf[ƒ^[‚̒ljÁ + EnterCriticalSection(&m_objDrawingDataProtection); + m_lstDraw.push_back(pDrawData); + LeaveCriticalSection(&m_objDrawingDataProtection); +} + +STDMETHODIMP CLayer::get_Color(long *pVal) +{ + *pVal = m_dwColor; + return S_OK; +} + +STDMETHODIMP CLayer::put_Color(long newVal) +{ + m_dwColor = newVal; + return S_OK; +} + + +STDMETHODIMP CLayer::get_FontColor(long *pVal) +{ + *pVal = m_dwFontColor; + return S_OK; +} + +STDMETHODIMP CLayer::put_FontColor(long newVal) +{ + m_dwFontColor = newVal; + return S_OK; +} + +STDMETHODIMP CLayer::get_Visible(BOOL *pVal) +{ + *pVal = m_bVisible; + return S_OK; +} + +STDMETHODIMP CLayer::put_Visible(BOOL newVal) +{ + m_bVisible = newVal; + return S_OK; +} + +STDMETHODIMP CLayer::get_FontName(BSTR *pVal) +{ + WCHAR wmes[MAX_PATH]; + MultiByteToWideChar(GetACP(),0,m_szFontName,-1,wmes,MAX_PATH); + *pVal = SysAllocString(wmes); + return S_OK; +} + +STDMETHODIMP CLayer::put_FontName(BSTR newVal) +{ + WideCharToMultiByte(GetACP(),0,newVal,-1,m_szFontName,MAX_PATH,NULL,NULL); + return S_OK; +} + +STDMETHODIMP CLayer::get_FillColor(long *pVal) +{ + *pVal = m_dwFillColor; + return S_OK; +} + +STDMETHODIMP CLayer::put_FillColor(long newVal) +{ + m_dwFillColor = newVal; + return S_OK; +} + +STDMETHODIMP CLayer::get_FontSize(short *pVal) +{ + *pVal = (short)m_nFontSize; + return S_OK; +} + +STDMETHODIMP CLayer::put_FontSize(short newVal) +{ + m_nFontSize = (int)newVal; + m_bFontTextMappingMode = m_bTextMappingMode; + return S_OK; +} + + +STDMETHODIMP CLayer::SetMappingMode(VARIANT mode) +{ + CComVariant varMode; + if(varMode.ChangeType(VT_I2,&mode) == S_OK){ + m_bTextMappingMode = varMode.iVal; + } + return S_OK; +} + +long CLayer::GetMappedValue(VARIANT var, long def) +{ + CComVariant varTmp; + if(m_bTextMappingMode){ + // ƒsƒNƒZƒ‹’PˆÊ‚̍À•WŽw’è + if(varTmp.ChangeType(VT_I4,&var) == S_OK){ + return varTmp.lVal; + } + } + else{ + // ƒ~ƒŠ’PˆÊ‚̍À•WŽw’è (1’PˆÊ 0.1mm) + if(varTmp.ChangeType(VT_R8,&var) == S_OK){ + return (long)(varTmp.dblVal * 10); + } + } + return def; +} diff --git a/Layer.h b/Layer.h new file mode 100644 index 0000000..2c356cd --- /dev/null +++ b/Layer.h @@ -0,0 +1,580 @@ +// Layer.h : CLayer ‚̐錾 + +#ifndef __LAYER_H_ +#define __LAYER_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ + +#include +using namespace std; + + +///////////////////////////////////////////////////////////////////////////// +// •`‰æƒIƒuƒWƒFƒNƒgƒNƒ‰ƒX + +class CDC +{ +public: + HDC m_hDC; + BOOL m_bPrinting; + RECT m_rct; +}; + +class drawdata +{ +public: + drawdata() + { + HWND hWnd = GetDesktopWindow(); + HDC hdc = GetDC(hWnd); + m_height_mm = GetDeviceCaps(hdc,VERTSIZE) * 10; + m_height_px = GetDeviceCaps(hdc,VERTRES); + m_width_mm = GetDeviceCaps(hdc,HORZSIZE) * 10; + m_width_px = GetDeviceCaps(hdc,HORZRES); + ReleaseDC(hWnd,hdc); + } + virtual void Destroy() = 0; + virtual void Draw(CDC hdc) = 0; + void DPtoLP(CDC& dc,POINT* pt,int cnt) + { + long offsetY = 0; + if(!dc.m_bPrinting){ + offsetY = MulDiv(dc.m_rct.bottom,m_height_mm,m_height_px); + } + else{ + offsetY = dc.m_rct.bottom; + } + int i; + for(i=0;iAddRef(); + } + } + virtual void Destroy() + { + if(m_pPicture){ + m_pPicture->Release(); + m_pPicture = NULL; + } + } + virtual void Draw(CDC dc) + { + if(!m_pPicture){ + // ƒrƒNƒ`ƒƒ[ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ª‚È‚¢‚Ȃ牽‚à‚µ‚È‚¢ + return; + } + // IPicture->Render‚ÍHIMETRIC‚̍À•W‚ð•K—v‚Æ‚·‚邪AƒXƒN[ƒ“‚ÍLOMETRIC‚É‚µ‚Ä‚¢‚邽‚߁B + // i‚½‚¾‚µARender‚̓}ƒcƒsƒ“ƒOƒ‚[ƒh‚ð•ÏX‚µ‚È‚¢‚̂ŁA—^‚¦‚鐔’l‚ÍLOMETRICBj + OLE_XPOS_HIMETRIC w = 0; + OLE_XPOS_HIMETRIC h = 0; + m_pPicture->get_Width(&w); + m_pPicture->get_Height(&h); + + if(m_bTextMappingMode){ + POINT pt[2] = {{m_x,m_y},{m_x+m_w,m_y+m_h}}; + DPtoLP(dc,pt,2); + if(m_w < 0){ pt[1].x = w/10; } else { pt[1].x = labs(pt[1].x - pt[0].x); } + if(m_h < 0){ pt[1].y = h/10; } else { pt[1].y = labs(pt[1].y - pt[0].y); } + m_pPicture->Render(dc.m_hDC + ,(pt[0].x) + ,(pt[0].y-pt[1].y) + ,(pt[1].x) + ,(pt[1].y) + ,0,0,w,h,NULL); + } + else{ + long dw = w / 10; + long dh = h / 10; + if(m_w > 0) dw = m_w; + if(m_h > 0) dh = m_h; + m_pPicture->Render(dc.m_hDC,m_x,m_y,dw,dh,0,0,w,h,NULL); + } + } +protected: + IPicture* m_pPicture; + long m_x; + long m_y; + long m_h; + long m_w; +}; + +///////////////////////////////////////////////////////////////////////////// +// CLayer +class ATL_NO_VTABLE CLayer : + public CComObjectRootEx, +// public CComCoClass, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IDispatchImpl +{ +public: + CLayer() + { + // •`‰æƒf[ƒ^[•ÛŒì‚̃NƒŠƒeƒBƒJƒ‹ƒZƒbƒVƒ‡ƒ“ + InitializeCriticalSection(&m_objDrawingDataProtection); + // ƒŒƒCƒ„[Šî–{ƒf[ƒ^‚̏‰Šú‰» + m_bVisible = true; + m_dwColor = 0; + m_nFontSize = 0; + m_dwFillColor = 0x808080; + m_dwFontColor = ::GetSysColor(COLOR_WINDOWTEXT); + ZeroMemory(m_szFontName,MAX_PATH); + // ƒ}ƒbƒsƒ“ƒOƒ‚[ƒh + m_bTextMappingMode = 0; + m_bFontTextMappingMode = 0; + } + void FinalRelease(); + +//DECLARE_REGISTRY_RESOURCEID(IDR_LAYER) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CLayer) + COM_INTERFACE_ENTRY(ILayer) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) +END_COM_MAP() +BEGIN_CONNECTION_POINT_MAP(CLayer) +END_CONNECTION_POINT_MAP() + + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ILayer +public: + long GetMappedValue(VARIANT var,long def = 0); + STDMETHOD(SetMappingMode)(/*[in]*/VARIANT mode); + STDMETHOD(Picture)(/*[in]*/VARIANT punkVal,/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in,optional]*/VARIANT w,/*[in,optional]*/VARIANT h); + STDMETHOD(Clear)(); + STDMETHOD(FillArc)(/*[in]*/VARIANT x1,/*[in]*/VARIANT y1,/*[in]*/VARIANT x2,/*[in]*/VARIANT y2,/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey); + STDMETHOD(FillCircle)(/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in]*/VARIANT radius); + STDMETHOD(FillBox)(/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey); + STDMETHOD(Arc)(/*[in]*/VARIANT x1,/*[in]*/VARIANT y1,/*[in]*/VARIANT x2,/*[in]*/VARIANT y2,/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey); + STDMETHOD(Box)(/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey); + STDMETHOD(Line)(/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey); + STDMETHOD(Circle)(/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in]*/VARIANT radius); + STDMETHOD(Text)(/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in]*/VARIANT text); + STDMETHOD(Polygon)(/*[in]*/VARIANT cx,/*[in]*/VARIANT cy,/*[in]*/VARIANT arrayPt); + STDMETHOD(FillRBox)(/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey,/*[in]*/VARIANT w,/*[in]*/VARIANT h); + STDMETHOD(get_FontSize)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_FontSize)(/*[in]*/ short newVal); + STDMETHOD(get_FillColor)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_FillColor)(/*[in]*/ long newVal); + STDMETHOD(get_FontName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_FontName)(/*[in]*/ BSTR newVal); + STDMETHOD(get_Visible)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Visible)(/*[in]*/ BOOL newVal); + STDMETHOD(get_FontColor)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_FontColor)(/*[in]*/ long newVal); + STDMETHOD(get_Color)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_Color)(/*[in]*/ long newVal); + STDMETHOD(TextBox)(/*[in]*/VARIANT sx,/*[in]*/VARIANT sy,/*[in]*/VARIANT ex,/*[in]*/VARIANT ey,/*[in]*/VARIANT text,/*[in,optional]*/VARIANT fmt); + void Draw(CDC dc); + void AddDrawData(drawdata* pDrawData); +protected: + CRITICAL_SECTION m_objDrawingDataProtection; + list m_lstDraw; + DWORD m_dwFillColor; + DWORD m_dwFontColor; + DWORD m_dwColor; + int m_nFontSize; + BOOL m_bVisible; + CHAR m_szFontName[MAX_PATH]; + int m_bTextMappingMode; + int m_bFontTextMappingMode; +}; + +#endif //__LAYER_H_ diff --git a/Layer.rgs b/Layer.rgs new file mode 100644 index 0000000..656d449 --- /dev/null +++ b/Layer.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.Layer.1 = s 'SeraphyScriptTools.Layer Class' + { + CLSID = s '{AF8351BD-890F-470F-A33D-D7F78F8B8E9B}' + } + SeraphyScriptTools.Layer = s 'SeraphyScriptTools.Layer Class' + { + CLSID = s '{AF8351BD-890F-470F-A33D-D7F78F8B8E9B}' + CurVer = s 'SeraphyScriptTools.Layer.1' + } + NoRemove CLSID + { + ForceRemove {AF8351BD-890F-470F-A33D-D7F78F8B8E9B} = s 'SeraphyScriptTools.Layer Class' + { + ProgID = s 'SeraphyScriptTools.Layer.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Layer' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/ObjectMap.cpp b/ObjectMap.cpp new file mode 100644 index 0000000..1dcba00 --- /dev/null +++ b/ObjectMap.cpp @@ -0,0 +1,365 @@ +// ObjectMap.cpp : CObjectMap ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "ObjectMap.h" +#include "profilesection.h" +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CObjectMap + + +STDMETHODIMP CObjectMap::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_IObjectMap + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CObjectMap::FindNear(VARIANT key, VARIANT *pVal) +{ + CComVariant varName; + ::VariantInit(pVal); + if(varName.ChangeType(VT_BSTR,&key) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + VariantMap::iterator p = m_mapVariant.lower_bound(varName.bstrVal); + if(p != m_mapVariant.end()){ + // ”­Œ©‚³‚ꂽ + CComVariant findkey((LPCWSTR)p->first); + findkey.ChangeType(VT_BSTR); + findkey.Detach(pVal); + } + return S_OK; +} + +STDMETHODIMP CObjectMap::get_NearValue(VARIANT key, VARIANT *pVal) +{ + CComVariant varName; + ::VariantInit(pVal); + if(varName.ChangeType(VT_BSTR,&key) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + VariantMap::iterator p = m_mapVariant.lower_bound(varName.bstrVal); + if(p != m_mapVariant.end()){ + // ”­Œ©‚³‚ꂽ + VariantCopy(pVal,&p->second); + } + return S_OK; +} + +STDMETHODIMP CObjectMap::get_Value(VARIANT key, VARIANT *pVal) +{ + CComVariant varName; + ::VariantInit(pVal); + if(varName.ChangeType(VT_BSTR,&key) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + VariantMap::iterator p = m_mapVariant.find(varName.bstrVal); + if(p != m_mapVariant.end()){ + // ”­Œ©‚³‚ꂽ + VariantCopy(pVal,&p->second); + } + return S_OK; +} + +STDMETHODIMP CObjectMap::put_Value(VARIANT key, VARIANT newVal) +{ + CComVariant varName; + if(varName.ChangeType(VT_BSTR,&key) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + VariantMap::iterator p = m_mapVariant.find(varName.bstrVal); + if(p != m_mapVariant.end()){ + // Šù‘¶ + VariantCopy(&p->second,&newVal); + } + else{ + // V‹K + VARIANT tmp; + ::VariantInit(&tmp); + VariantCopy(&tmp,&newVal); + m_mapVariant.insert(pair<_bstr_t,VARIANT>(varName.bstrVal,tmp)); + } + return S_OK; +} + +STDMETHODIMP CObjectMap::get_Count(long *pVal) +{ + *pVal = m_mapVariant.size(); + return S_OK; +} + +STDMETHODIMP CObjectMap::Clear() +{ + //VARIANT‚̃NƒŠƒA‚ƘA‘z”z—ñ‚̉ð•ú + VariantMap::iterator p = m_mapVariant.begin(); + while(p != m_mapVariant.end()){ + ::VariantClear(&p->second); + p++; + } + m_mapVariant.clear(); + return S_OK; +} + + +STDMETHODIMP CObjectMap::Duplicate(IUnknown** punkVal) +{ + *punkVal = NULL; + CComObject* pMap = NULL; + if(pMap->CreateInstance(&pMap) == S_OK){ + // Œ»Ý‚̃IƒuƒWƒFƒNƒg‚𕡐»‚·‚é + VariantMap::iterator p = m_mapVariant.begin(); + while(p != m_mapVariant.end()){ + CComVariant key((LPCWSTR)p->first); + key.ChangeType(VT_BSTR); + pMap->put_Value(key,p->second); + p++; + } + pMap->QueryInterface(IID_IUnknown,(void**)punkVal); + } + return S_OK; +} + +STDMETHODIMP CObjectMap::CreateMap(IUnknown** punkVal) +{ + *punkVal = NULL; + CComObject* pMap = NULL; + if(pMap->CreateInstance(&pMap) == S_OK){ + pMap->QueryInterface(IID_IUnknown,(void**)punkVal); + } + return S_OK; +} + +STDMETHODIMP CObjectMap::get__NewEnum(IUnknown **pVal) +{ + int mx = m_mapVariant.size(); + VARIANT* pvarArray = new VARIANT[mx+1]; + // Ši”[‚³‚ê‚Ä‚¢‚é–¼‘O‚Ì—ñ‹“ + VariantMap::iterator p = m_mapVariant.begin(); + int i = 0; + while(p != m_mapVariant.end()){ + ::VariantInit(&pvarArray[i]); + pvarArray[i].vt = VT_BSTR; + pvarArray[i].bstrVal = SysAllocString(p->first); + p++; + i++; + } + // —ñ‹“ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̐¶¬ + CComObject* pCol = NULL; + if(pCol->CreateInstance(&pCol) == S_OK){ + pCol->AddRef(); + pCol->Init(&pvarArray[0],&pvarArray[mx],pCol,AtlFlagCopy); + *pVal = pCol; + } + // Šm•Û‚µ‚½ƒoƒŠƒAƒ“ƒg‚Ì”jŠü(ƒŠƒŠ[ƒX‚ðs‚¤•K—v‚ ‚è) + i = 0; + while(i < mx){ + ::VariantClear(&pvarArray[i++]); + } + delete[]pvarArray; + return S_OK; +} + +STDMETHODIMP CObjectMap::ExpandVariables(VARIANT text, VARIANT env, VARIANT *pVal) +{ + CComVariant varText,varEnv,varResult; + if(varText.ChangeType(VT_BSTR,&text) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + // ŠÂ‹«•Ï”‚ð“WŠJ‚·‚é‚©? + BOOL bEnv = false; + if(varEnv.ChangeType(VT_I2,&env) == S_OK){ + bEnv = varEnv.iVal; + } + // ƒtƒF[ƒY1 : ŠÜ‚Ü‚ê‚é•Ï”‚𒲍¸‚µ‚Ä•K—v‚ȃoƒbƒtƒ@ƒTƒCƒY‚ð‹‚ß‚é + // ƒtƒF[ƒY2 ; ŽÀÛ‚É“WŠJ‚·‚é + DWORD expandsize = 0; + UINT writeidx = 0; + LPWSTR pExpandBuffer = NULL; + for(int phase = 0;phase < 2;phase++){ + LPCWSTR str = varText.bstrVal; + UINT length = SysStringLen(varText.bstrVal); + UINT idx = 0; + while(idx < length){ + if(str[idx] == '%'){ + // •Ï”“WŠJƒXƒ^[ƒg + WCHAR name[MAX_PATH] = {0}; + UINT len = 0; + // ˜A‘±‚·‚é%‚É‚æ‚é%Ž©g‚̏o—Í‚Å‚ ‚é‚©? + idx++; + if(str[idx] == '%'){ + if(phase == 0){ + idx++; + } + else{ + pExpandBuffer[writeidx++] = str[idx++]; + } + continue; + } + // •Ï”–¼‚ÌŽæ‚èo‚µ + while(idx < length && str[idx] != '%'){ + name[len++] = str[idx++]; + } + name[len] = 0; + if(str[idx] == '%'){ + idx++; + } + // •Ï”‚ÌŽÀÝƒ`ƒFƒbƒN + VariantMap::iterator p = m_mapVariant.find(name); + if(p != m_mapVariant.end()){ + // ”­Œ©‚³‚ꂽ + CComVariant tmp; + if(tmp.ChangeType(VT_BSTR,&p->second) == S_OK){ + if(phase == 0){ + // ƒtƒF[ƒY1‚̓TƒCƒY‚ðƒJƒEƒ“ƒg‚·‚邾‚¯ + expandsize += SysStringLen(tmp.bstrVal); + } + else{ + // ƒtƒF[ƒY2‚ÍŒ»ÝˆÊ’u‚ɕϐ”‚ð“WŠJ‚·‚é + UINT len = SysStringLen(tmp.bstrVal); + UINT i; + for(i=0;iQueryInterface(IID_ISeraphyScriptTools_ProfileSection,(void**)&pSection) != S_OK){ + return DISP_E_UNKNOWNINTERFACE; + } + // + CComVariant varArray; + pSection->GetKeyNames(&varArray); + if(!(varArray.vt & VT_ARRAY)){ + // Internal Error + return DISP_E_UNKNOWNINTERFACE; + } + // ”z—ñ‚̏‡˜“IŽæ“¾ + long mx = 0; + HRESULT ret = SafeArrayGetUBound(varArray.parray,1,&mx); + if(ret != S_OK){ + mx = -1; + } + long idx = 0; + while(idx <= mx){ + CComVariant varKey,varVal; + if(SafeArrayGetElement(varArray.parray,&idx,&varKey) == S_OK){ + if(pSection->get_Value(varKey,&varVal) == S_OK){ + put_Value(varKey,varVal); + } + } + idx++; + } + pSection->Release(); + return S_OK; +} + +STDMETHODIMP CObjectMap::SaveProfile(IUnknown *punkVal) +{ + ISeraphyScriptTools_ProfileSection* pSection = NULL; + if(punkVal->QueryInterface(IID_ISeraphyScriptTools_ProfileSection,(void**)&pSection) != S_OK){ + return DISP_E_UNKNOWNINTERFACE; + } + // Ši”[‚³‚ê‚Ä‚¢‚é–¼‘O‚Ì—ñ‹“ + VariantMap::iterator p = m_mapVariant.begin(); + while(p != m_mapVariant.end()){ + CComVariant varTmp; + if(varTmp.ChangeType(VT_BSTR,&p->second) == S_OK){ + CComVariant varIdx = (BSTR)p->first; + pSection->put_Value(varIdx,varTmp); + } + p++; + } + pSection->Release(); + return S_OK; +} diff --git a/ObjectMap.h b/ObjectMap.h new file mode 100644 index 0000000..36d8527 --- /dev/null +++ b/ObjectMap.h @@ -0,0 +1,64 @@ +// ObjectMap.h : CObjectMap ‚̐錾 + +#ifndef __OBJECTMAP_H_ +#define __OBJECTMAP_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include +#include +using namespace std; + +typedef map<_bstr_t,VARIANT> VariantMap; + +///////////////////////////////////////////////////////////////////////////// +// CObjectMap +class ATL_NO_VTABLE CObjectMap : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CObjectMap() + { + } + void FinalRelease() + { + Clear(); + ATLTRACE("CObjectMap::FinalRelease\n"); + } + +DECLARE_REGISTRY_RESOURCEID(IDR_OBJECTMAP) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CObjectMap) + COM_INTERFACE_ENTRY(IObjectMap) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// IObjectMap +public: + STDMETHOD(SaveProfile)(/*[in]*/IUnknown* punkVal); + STDMETHOD(LoadProfile)(/*[in]*/IUnknown* punkVal); + STDMETHOD(Erase)(/*[in]*/VARIANT key); + STDMETHOD(get_IsExist)(/*[in]*/VARIANT key, /*[out, retval]*/ BOOL *pVal); + STDMETHOD(ExpandVariables)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT env,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(get_NearValue)(/*[in]*/VARIANT key,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(FindNear)(/*[in]*/VARIANT key,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown* *pVal); + STDMETHOD(CreateMap)(/*[out,retval]*/IUnknown** punkVal); + STDMETHOD(Duplicate)(/*[out,retval]*/IUnknown** punkVal); + STDMETHOD(Clear)(); + STDMETHOD(get_Count)(/*[out, retval]*/ long *pVal); + STDMETHOD(get_Value)(/*[in]*/VARIANT key, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(put_Value)(/*[in]*/VARIANT key, /*[in]*/ VARIANT newVal); +protected: + VariantMap m_mapVariant; +}; + +#endif //__OBJECTMAP_H_ diff --git a/ObjectMap.rgs b/ObjectMap.rgs new file mode 100644 index 0000000..c96b433 --- /dev/null +++ b/ObjectMap.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.ObjectMap.1 = s 'SeraphyScriptTools.ObjectMap Class' + { + CLSID = s '{E368625A-EE53-43BA-8433-B7FE6E995DEA}' + } + SeraphyScriptTools.ObjectMap = s 'SeraphyScriptTools.ObjectMap Class' + { + CLSID = s '{E368625A-EE53-43BA-8433-B7FE6E995DEA}' + CurVer = s 'SeraphyScriptTools.ObjectMap.1' + } + NoRemove CLSID + { + ForceRemove {E368625A-EE53-43BA-8433-B7FE6E995DEA} = s 'SeraphyScriptTools.ObjectMap Class' + { + ProgID = s 'SeraphyScriptTools.ObjectMap.1' + VersionIndependentProgID = s 'SeraphyScriptTools.ObjectMap' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/ObjectVector.cpp b/ObjectVector.cpp new file mode 100644 index 0000000..f12898e --- /dev/null +++ b/ObjectVector.cpp @@ -0,0 +1,281 @@ +// ObjectVector.cpp : CObjectVector ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "ObjectVector.h" +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CObjectVector + +STDMETHODIMP CObjectVector::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_IObjectVector + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CObjectVector::CreateVector(IUnknown **punkVal) +{ + *punkVal = NULL; + CComObject* pVct = NULL; + if(pVct->CreateInstance(&pVct) == S_OK){ + pVct->QueryInterface(IID_IUnknown,(void**)punkVal); + } + return S_OK; +} + +STDMETHODIMP CObjectVector::Duplicate(VARIANT idx,VARIANT count,IUnknown **punkVal) +{ + *punkVal = NULL; + CComObject* pVct = NULL; + if(pVct->CreateInstance(&pVct) == S_OK){ + pVct->QueryInterface(IID_IUnknown,(void**)punkVal); + } + if(!m_vctVariant.empty()){ + // Žw’èˆÊ’u‚æ‚èŽw’萔‚Ì•¡ŽÊ + CComVariant varIdx,varCount; + long nIdx = 0; + if(varIdx.ChangeType(VT_I4,&idx) == S_OK){ + nIdx = varIdx.lVal; + } + long nCount = -1; // 0–¢–ž‚ðŽw’è‚·‚é‚Æ––”ö‚܂ł̃JƒEƒ“ƒg‚ðŒvŽZ‚·‚é + if(varCount.ChangeType(VT_I4,&count) == S_OK){ + nCount = varCount.lVal; + } + long mx = m_vctVariant.size(); + if(nCount < 0 || nIdx + nCount >= mx){ + nCount = mx - nIdx; + } + if(nIdx < 0){ + nIdx = 0; + } + if(nIdx < mx){ + long i; + for(i=0 ; im_vctVariant.push_back(tmp); + } + } + } + return S_OK; +} + +STDMETHODIMP CObjectVector::Clear() +{ + //VARIANT‚̃NƒŠƒA‚ƘA‘z”z—ñ‚̉ð•ú + VariantVector::iterator p = m_vctVariant.begin(); + while(p != m_vctVariant.end()){ + ::VariantClear(&*p); + p++; + } + m_vctVariant.clear(); + return S_OK; +} + +STDMETHODIMP CObjectVector::Erase(VARIANT idx, VARIANT count) +{ + // Žw’èˆÊ’u‚æ‚èŽw’萔‚̍폜 + CComVariant varIdx,varCount; + long nIdx = 0; + if(varIdx.ChangeType(VT_I4,&idx) == S_OK){ + nIdx = varIdx.lVal; + } + long nCount = 1; + if(varCount.ChangeType(VT_I4,&count) == S_OK){ + nCount = varCount.lVal; + } + long mx = m_vctVariant.size(); + if(nCount < 0 || nIdx + nCount >= mx){ + nCount = mx - nIdx; + } + if(nIdx < 0 || nIdx >= mx || nCount < 0 ){ + return DISP_E_BADINDEX; + } + m_vctVariant.erase(m_vctVariant.begin() + nIdx,m_vctVariant.begin() + nIdx + nCount); + return S_OK; +} + +STDMETHODIMP CObjectVector::Push(VARIANT newVal) +{ + // ––”ö‚ɒljÁ + VARIANT tmp; + ::VariantInit(&tmp); + ::VariantCopy(&tmp,&newVal); + m_vctVariant.push_back(tmp); + return S_OK; +} + +STDMETHODIMP CObjectVector::Pop(VARIANT *pVal) +{ + // ––”ö‚ðŽæ‚èo‚µ + ::VariantInit(pVal); + if(!m_vctVariant.empty()){ + long mx = m_vctVariant.size(); + ::VariantInit(pVal); + ::VariantCopy(pVal,&m_vctVariant.at(mx-1)); + m_vctVariant.pop_back(); + } + return S_OK; +} + +STDMETHODIMP CObjectVector::Insert(VARIANT idx, VARIANT newVal) +{ + // Žw’èˆÊ’u‚É‘}“ü + CComVariant varIdx; + long nIdx = 0; + if(varIdx.ChangeType(VT_I4,&idx) == S_OK){ + nIdx = varIdx.lVal; + } + long mx = m_vctVariant.size(); + if(nIdx < 0 || nIdx >= mx){ + return DISP_E_BADINDEX; + } + VARIANT tmp; + ::VariantInit(&tmp); + ::VariantCopy(&tmp,&newVal); + m_vctVariant.insert(m_vctVariant.begin() + nIdx,tmp); + return S_OK; +} + +STDMETHODIMP CObjectVector::get_Value(VARIANT idx, VARIANT *pVal) +{ + ::VariantInit(pVal); + long nIdx = 0; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I4,&idx) == S_OK){ + nIdx = varIdx.lVal; + } + if(nIdx < 0){ + return DISP_E_BADINDEX; + } + long mx = m_vctVariant.size(); + if(nIdx < mx){ + // ƒxƒNƒ^[‚͈͓̔à‚È‚ç’l‚ðŽæ“¾‚·‚é + ::VariantCopy(pVal,&m_vctVariant.at(nIdx)); + } + return S_OK; +} + +STDMETHODIMP CObjectVector::put_Value(VARIANT idx, VARIANT newVal) +{ + long nIdx = 0; + CComVariant varIdx; + if(varIdx.ChangeType(VT_I4,&idx) == S_OK){ + nIdx = varIdx.lVal; + } + if(nIdx < 0){ + return DISP_E_BADINDEX; + } + long mx = m_vctVariant.size(); + if(nIdx >= mx){ + // ƒxƒNƒ^[‚͈̔͂𒴂¦‚Ä‚¢‚ê‚Ίg’£‚µA‰Šú‰»‚³‚ꂽVARIANT‚Å–„‚ß‚é + VARIANT tmp; + ::VariantInit(&tmp); + while(mx <= nIdx){ + m_vctVariant.push_back(tmp); + mx++; + } + } + // ƒxƒNƒ^[‚͈͓̔à‚È‚ç’l‚ðÄÝ’è‚·‚é + ::VariantClear(&m_vctVariant.at(nIdx)); + ::VariantCopy(&m_vctVariant.at(nIdx),&newVal); + return S_OK; +} + +STDMETHODIMP CObjectVector::get_Count(long *pVal) +{ + *pVal = m_vctVariant.size(); + return S_OK; +} + +STDMETHODIMP CObjectVector::get__NewEnum(IUnknown **pVal) +{ + typedef CComEnumDynaVARIANT CComEnumDynaVector; + CComObject* pDyna = NULL; + if(pDyna->CreateInstance(&pDyna) == S_OK){ + pDyna->Init(this,0); + pDyna->QueryInterface(IID_IEnumVARIANT,(void**)pVal); + } + return S_OK; +} + +STDMETHODIMP CObjectVector::Merge(VARIANT unkVal) +{ + HRESULT ret = DISP_E_TYPEMISMATCH; + CComVariant varUnk; + if(varUnk.ChangeType(VT_UNKNOWN,&unkVal) == S_OK){ + // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̏ꍇ + IObjectVector* pVect = NULL; + if(varUnk.punkVal->QueryInterface(IID_IObjectVector,(void**)&pVect) != S_OK){ + // Žw’èŠO‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚Å‚ ‚é + return DISP_E_TYPEMISMATCH; + } + long mx; + pVect->get_Count(&mx); + long i; + for(i=0;iget_Value(idx,&ret); + m_vctVariant.push_back(ret); + } + pVect->Release(); + ret = S_OK; + } + else{ + VARTYPE vt = VT_EMPTY; + SAFEARRAY* pArray = GetArrayFromVariant(unkVal,&vt); + if(pArray && vt == VT_VARIANT){ + long lb = 0; + long ub = 0; + int dm = SafeArrayGetDim(pArray); + SafeArrayGetLBound(pArray,1,&lb); // ¶‘¤‚Ì“Y‚¦Žš + SafeArrayGetUBound(pArray,1,&ub); + if(dm == 1 && lb == 0 && vt == VT_VARIANT){ + // 1ŽŸŒ³”z—ñ‚ŁA0ƒx[ƒX‚̃oƒŠƒAƒ“ƒg”z—ñ‚Å‚ ‚é + int cnt; + long dim[1]; + for(cnt = 0 ; cnt <= ub ; cnt++){ + // VARIANT‚Ì”z—ñ‚Å‚ ‚é + VARIANT tmp; + ::VariantInit(&tmp); + dim[0] = cnt; + SafeArrayGetElement(pArray,dim,&tmp); + m_vctVariant.push_back(tmp); + }//next(”z—ñ‚̃‹[ƒv) + ret = S_OK; + } + } + } + return ret; +} + + +STDMETHODIMP CObjectVector::MakeArray(VARIANT *pVal) +{ + long mx = m_vctVariant.size(); + SAFEARRAY* pArray = SafeArrayCreateVector(VT_VARIANT,0,mx); + VARIANT* pvars; + if(SafeArrayAccessData(pArray,(void**)&pvars) == S_OK){ + long cnt = 0; + for(cnt = 0; cnt < mx ; cnt++){ + VariantInit(&pvars[cnt]); + VariantCopy(&pvars[cnt],&m_vctVariant.at(cnt)); + } + SafeArrayUnaccessData(pArray); + } + pArray->fFeatures |= FADF_HAVEVARTYPE; + pVal->vt = VT_ARRAY | VT_VARIANT; + pVal->parray = pArray; + return S_OK; +} diff --git a/ObjectVector.h b/ObjectVector.h new file mode 100644 index 0000000..6acc11b --- /dev/null +++ b/ObjectVector.h @@ -0,0 +1,63 @@ +// ObjectVector.h : CObjectVector ‚̐錾 + +#ifndef __OBJECTVECTOR_H_ +#define __OBJECTVECTOR_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include +using namespace std; + +typedef vector VariantVector; + +///////////////////////////////////////////////////////////////////////////// +// CObjectVector +class ATL_NO_VTABLE CObjectVector : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CObjectVector() + { + m_vctVariant.reserve(100); // ‰Šúó‘Ô‚Å100‚̃oƒbƒtƒ@‚ðŠm•Û‚·‚é + } + void FinalRelease() + { + ATLTRACE("CObjectVector::FinalRelease\r\n"); + Clear(); + } + +DECLARE_REGISTRY_RESOURCEID(IDR_OBJECTVECTOR) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CObjectVector) + COM_INTERFACE_ENTRY(IObjectVector) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// IObjectVector +public: + STDMETHOD(MakeArray)(/*[out,retval]*/VARIANT* pVal); + STDMETHOD(Merge)(/*[in]*/VARIANT unkVal); + STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown* *pVal); + STDMETHOD(get_Count)(/*[out, retval]*/ long *pVal); + STDMETHOD(get_Value)(/*[in,optional]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(put_Value)(/*[in,optional]*/VARIANT idx, /*[in]*/ VARIANT newVal); + STDMETHOD(Insert)(/*[in]*/VARIANT idx,/*[in]*/VARIANT newVal); + STDMETHOD(Pop)(/*[out,retval]*/VARIANT* pVal); + STDMETHOD(Push)(/*[in]*/VARIANT newVal); + STDMETHOD(Erase)(/*[in]*/VARIANT start,/*[in,optional]*/VARIANT count); + STDMETHOD(Clear)(); + STDMETHOD(Duplicate)(/*[in,optional]*/VARIANT idx,/*[in,optional]*/VARIANT count,/*[out,retval]*/IUnknown** punkVal); + STDMETHOD(CreateVector)(/*[out,retval]*/IUnknown** punkVal); +protected: + VariantVector m_vctVariant; +}; + +#endif //__OBJECTVECTOR_H_ diff --git a/ObjectVector.rgs b/ObjectVector.rgs new file mode 100644 index 0000000..d4db107 --- /dev/null +++ b/ObjectVector.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.ObjectVector.1 = s 'SeraphyScriptTools.ObjectVector Class' + { + CLSID = s '{FFA411CA-1872-4A89-92F2-A7EBCBB83241}' + } + SeraphyScriptTools.ObjectVector = s 'SeraphyScriptTools.ObjectVector Class' + { + CLSID = s '{FFA411CA-1872-4A89-92F2-A7EBCBB83241}' + CurVer = s 'SeraphyScriptTools.ObjectVector.1' + } + NoRemove CLSID + { + ForceRemove {FFA411CA-1872-4A89-92F2-A7EBCBB83241} = s 'SeraphyScriptTools.ObjectVector Class' + { + ProgID = s 'SeraphyScriptTools.ObjectVector.1' + VersionIndependentProgID = s 'SeraphyScriptTools.ObjectVector' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/OverlappedWindow.cpp b/OverlappedWindow.cpp new file mode 100644 index 0000000..e022df0 --- /dev/null +++ b/OverlappedWindow.cpp @@ -0,0 +1,2224 @@ +// OverlappedWindow.cpp : COverlappedWindow ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ + + +// /D "_ATL_MIN_CRT" ‚ðŠO‚· + +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "OverlappedWindow.h" +#include "generic.h" +#include +#include + +///////////////////////////////////////////////////////////////////////////// +// COverlappedWindow + + +COverlappedWindow::COverlappedWindow() +{ + m_pUnkMarshaler = NULL; + + // ƒAƒCƒRƒ“‚̏‰Šú‰» + m_hIcon = NULL; + + // ƒCƒxƒ“ƒg‘Ò‹@—pƒCƒxƒ“ƒgƒnƒ“ƒhƒ‹AƒCƒxƒ“ƒgˆ—’†ƒZƒ}ƒtƒH + m_hWaitEvent = CreateEvent(NULL,false,false,NULL); // Ž©“®ƒCƒxƒ“ƒg : ‰ŠúFALSE + // ƒNƒŠƒeƒBƒJƒ‹ƒZƒNƒVƒ‡ƒ“ + InitializeCriticalSection(&m_objEventDataProtection); + + // ƒCƒxƒ“ƒgƒCƒ“ƒ^[ƒtƒFƒCƒX‚̏‰Šú‰» + m_pEvent = NULL; + // ƒNƒ‰ƒXƒIƒuƒWƒFƒNƒg‚̏‰Šú‰» + m_pClassDisp = NULL; + m_bAutoReleaseClassObject = true; + + // ƒEƒBƒ“ƒhƒEƒTƒCƒY + windowParam.SetWindowPlacement(CW_USEDEFAULT,CW_USEDEFAULT,300,300); + windowParam.noclose = false; + windowParam.doublebuffer = true; + windowParam.automessageloop = true; + // ƒoƒbƒNƒOƒ‰ƒEƒ“ƒhƒuƒ‰ƒV + m_dwBackColor = ::GetSysColor(COLOR_WINDOW); + m_hBkBrush = CreateSolidBrush(COLORREF(m_dwBackColor)); + // ƒEƒBƒ“ƒhƒE‚̍쐬 + m_hParentWnd = NULL; + m_hPopupWnd = NULL; + m_hMenu = NULL; + + // ƒ†[ƒU[ƒ‚[ƒh‚̏‰Šú‰» + m_bQuit = false; // •Â‚¶‚ç‚ê‚Ä‚¢‚È‚¢‚±‚Æ‚ðŽ¦‚· + m_dModalExitCode = 0; // ƒ‚[ƒ_ƒ‹•Ô“šƒR[ƒh + m_dCaptureMode = 0; + m_bDefaultAction = true; // ƒfƒBƒtƒHƒ‹ƒg‚ÌOK/CANCELƒAƒNƒVƒ‡ƒ“‚ŕ‚¶‚é + + // ƒtƒH[ƒ€ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̍쐬 + m_pForm = NULL; + m_hLastFocusControl = NULL; + if(m_pForm->CreateInstance(&m_pForm) == S_OK){ + m_pForm->AddRef(); + m_pForm->SetWindowSize(windowParam.width,windowParam.height,true); + } + // •`‰æƒCƒ“ƒ^[ƒtƒFƒCƒX‚̐¶¬ + m_pCanvas = NULL; + if(m_pCanvas->CreateInstance(&m_pCanvas) == S_OK){ + m_pCanvas->AddRef(); + } + // ƒ†[ƒU[’è‹`˜A‘z”z—ñƒCƒ“ƒ^[ƒtƒFƒCƒX‚̐¶¬ + m_pObject = NULL; + if(m_pObject->CreateInstance(&m_pObject) == S_OK){ + m_pObject->AddRef(); + } + // ƒEƒFƒCƒgƒJ[ƒ\ƒ‹‚̏‰Šú‰» + m_dWaitCursor = 0; +} + +HRESULT COverlappedWindow::FinalConstruct() +{ + return CoCreateFreeThreadedMarshaler( + GetControllingUnknown(), &m_pUnkMarshaler.p); +} + +void COverlappedWindow::FinalRelease() +{ + // ƒEƒBƒ“ƒhƒE‚ª”jŠü‚³‚ê‚邱‚Æ‚ð’Ê’m‚·‚éƒCƒxƒ“ƒg + Fire_ExitWindow(); + ClassObjectInvoke(L"ExitWindow"); + + // ƒNƒ‰ƒXƒIƒuƒWƒFƒNƒg‚Ì•úŠü + if( m_pClassDisp ){ + m_pClassDisp->Release(); + m_pClassDisp = NULL; + } + + // ƒAƒCƒRƒ“‚Ì”jŠü + if(m_hIcon){ + ::DestroyIcon(m_hIcon); + } + // ƒ`ƒƒƒCƒ‹ƒhƒ|ƒbƒvƒAƒbƒv‚Ì”jŠü + list*>::iterator pWnd = m_lstChild.begin(); + while(pWnd != m_lstChild.end()){ + (*pWnd)->Close(); + (*pWnd)->Release(); + pWnd = m_lstChild.erase(pWnd); + } + // ƒCƒxƒ“ƒgƒIƒuƒWƒFƒNƒg‚Ì”jŠü + if(m_pEvent){ + m_pEvent->Release(); + m_pEvent = NULL; + } + + // ƒhƒ[ƒCƒ“ƒOƒIƒuƒWƒFƒNƒg‚̃fƒ^ƒbƒ`‚ƃCƒ“ƒ^[ƒtƒFƒCƒX‚Ì•úŠü + if(m_pCanvas){ + m_pCanvas->DetachOwner(); + m_pCanvas->Release(); + m_pCanvas = NULL; + } + // ƒtƒH[ƒ€‚Ì”jŠü + if(m_pForm){ + m_pForm->DetachOwner(); + m_pForm->Release(); + m_pForm = NULL; + } + // ƒ†[ƒU[’è‹`˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚Ì”jŠü + if(m_pObject){ + m_pObject->Release(); + m_pObject = NULL; + } + + // ”wŒiƒuƒ‰ƒV‚̉ð•ú + if(m_hBkBrush){ + DeleteObject(m_hBkBrush); + } + + EnterCriticalSection(&m_objEventDataProtection); + // ƒCƒxƒ“ƒgƒf[ƒ^‚̉ð•ú + list*>::iterator pEv = m_lstEvent.begin(); + while(pEv != m_lstEvent.end()){ + (*pEv)->Release(); + pEv = m_lstEvent.erase(pEv); + } + LeaveCriticalSection(&m_objEventDataProtection); + + // ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‹‚̉ð•ú + if(m_hWaitEvent){ + CloseHandle(m_hWaitEvent); + m_hWaitEvent = NULL; + } + // ƒƒjƒ…[‚Ì”jŠü + if(m_hMenu){ + DestroyMenu(m_hMenu); + m_hMenu = NULL; + } + // ƒƒCƒ“ƒEƒBƒ“ƒhƒE‚Ì”jŠü + if(m_hPopupWnd){ + ::DestroyWindow(m_hPopupWnd); + m_hPopupWnd = NULL; + } + // ƒNƒŠƒeƒBƒJƒ‹ƒZƒbƒVƒ‡ƒ“‚Ì”jŠü + DeleteCriticalSection(&m_objEventDataProtection); + + m_pUnkMarshaler.Release(); + ATLTRACE("COverlappedWindow::FinalRelease\r\n"); +} + +STDMETHODIMP COverlappedWindow::get_Caption(BSTR* pVal) +{ + *pVal = SysAllocString(m_bstrCaption); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Caption(BSTR newVal) +{ + SysReAllocString(&m_bstrCaption,newVal); + SetTitle(); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_backColor(long *pVal) +{ + *pVal = m_dwBackColor; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_backColor(long newVal) +{ + m_dwBackColor = newVal; + if(m_hBkBrush){ + DeleteObject(m_hBkBrush); + } + m_hBkBrush = CreateSolidBrush(COLORREF(newVal)); + if(m_hPopupWnd){ + ::InvalidateRect(m_hPopupWnd,NULL,true); + ::UpdateWindow(m_hPopupWnd); + } + return S_OK; +} + +HWND COverlappedWindow::SafeCreateWnd() +{ + // ¶¬Ï‚Ý‚Å‚ ‚ê‚Ή½‚à‚µ‚È‚¢B + if(m_hPopupWnd){ + return m_hPopupWnd; + } + // ƒEƒBƒ“ƒhƒE¶¬‚É•K—v‚È‘Sƒpƒ‰ƒ[ƒ^[‚̓Rƒ“ƒXƒgƒ‰ƒNƒ^‚ō쐬Ï‚Ý + // ‚ ‚Ƃ̓EƒBƒ“ƒhƒE‚ª•K—v‚É‚È‚Á‚½ƒ^ƒCƒ~ƒ“ƒO‚Ő¶¬‚ðs‚¤ + + if(windowParam.noclose){ + // •Â‚¶‚éƒ{ƒ^ƒ“‚È‚µƒ^ƒCƒv + windowParam.SetWindowClassName("SeraphyScriptToolsOverlappedWindowNC"); + windowParam.wndstyle = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS | CS_NOCLOSE; + } + else{ + windowParam.SetWindowClassName("SeraphyScriptToolsOverlappedWindow"); + windowParam.wndstyle = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; + } + + WNDCLASSEX wcex = {0}; + wcex.cbSize = sizeof(WNDCLASSEX); + wcex.lpfnWndProc = (WNDPROC)WindowProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = _Module.m_hInst; + wcex.hIcon = NULL;//(HICON)LoadImage(NULL,"SETUPICON.ICO",IMAGE_ICON,16,16,LR_LOADFROMFILE);//LoadIcon(hInstance, (LPCTSTR)IDI_INSTPAC); + wcex.hIconSm = m_hIcon;//LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = NULL; + wcex.lpszMenuName = NULL; + wcex.lpszClassName = windowParam.szClassName; + wcex.style = windowParam.wndstyle; + ATOM atm = RegisterClassEx( &wcex ); + + HWND hWnd = CreateWindowEx( + WS_EX_CONTROLPARENT, + windowParam.szClassName, + "", // ƒ_ƒ~[ + windowParam.GetStyle(), + CW_USEDEFAULT, + CW_USEDEFAULT, + windowParam.width, + windowParam.height, + m_hParentWnd, + NULL, _Module.m_hInst, this); + ::SetWindowLong(hWnd,GWL_USERDATA,(LONG)this); // ƒNƒ‰ƒX‚ÆŠÖ˜A•t‚¯‚é + m_hPopupWnd = hWnd; + // ƒEƒBƒ“ƒhƒEƒXƒ^ƒCƒ‹‚̍Đݒè + ::SetWindowLong(m_hPopupWnd,GWL_STYLE,windowParam.GetStyle()); + Refresh(); + + // ƒVƒXƒeƒ€ƒƒjƒ…[‚ɃtƒŒ[ƒ€ˆÚ“®ƒƒjƒ…[‚ð‚‚¯‚é + HMENU hMenu = ::GetSystemMenu(m_hPopupWnd,false); + int cnt = ::GetMenuItemCount(hMenu); + MENUITEMINFO minfo = {0}; + minfo.cbSize = sizeof(MENUITEMINFO); + minfo.fMask = MIIM_TYPE|MIIM_ID; + minfo.fType = MFT_STRING; + minfo.wID = WM_MOVENEXT_OVERLAPPED; + minfo.dwTypeData = "ŽŸ‚̃EƒBƒ“ƒhƒE‚Ɉړ®\tF6"; + ::InsertMenuItem(hMenu,cnt,true,&minfo); + + // ƒtƒH[ƒ€‚̃ƒCƒ“ƒEƒBƒ“ƒhƒE—p‚Æ‚µ‚ăAƒ^ƒbƒ`‚·‚é + if(m_pForm){ + // ƒRƒ“ƒgƒ[ƒ‹‚ÌŽ–‘Oì¬•ª‚àŽ©“®¶¬‚³‚ê‚é + m_pForm->AttachOwner(m_hPopupWnd); + } + + // ƒEƒBƒ“ƒhƒE‚ª¶¬‚³‚ꂽƒCƒxƒ“ƒg‚𔭍s‚·‚é + Fire_InitWindow(); + ClassObjectInvoke(L"InitWindow"); + + return hWnd; +} + +LRESULT CALLBACK COverlappedWindow::WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + COverlappedWindow* me = (COverlappedWindow*)::GetWindowLong(hWnd,GWL_USERDATA); + + // ‹Ù‹}’âŽ~‚Ì”»’è + if(GetAsyncKeyState(VK_PAUSE) & 0x8000){ + ::EnableWindow(hWnd,true); + me->m_bQuit = 1; + me->m_dModalExitCode = 3; + } + + switch(uMsg) + { + case WM_MOVENEXT_OVERLAPPED: + { + me->MoveNextOverlapped(); + return 0; + } + case WM_CREATE: + { + // ƒfƒBƒtƒHƒ‹ƒg‚Ì“®ì‚ðs‚¤ + break; + } + case WM_PAINT: + { + PAINTSTRUCT ps; + RECT rt; + ::GetClientRect( hWnd, &rt ); + HDC hdc = ::BeginPaint (hWnd, &ps); + HDC hdc2 = hdc; + HBITMAP bmp; + BOOL bDblBuf = me->windowParam.doublebuffer; + if(bDblBuf){ + // ‚¿‚ç‚‚«‚𖳂­‚·‚邽‚߂Ƀoƒuƒ‹ƒoƒbƒtƒ@•—‚É‚·‚é‚©H + hdc2 = ::CreateCompatibleDC(NULL); + bmp = ::CreateCompatibleBitmap(hdc,rt.right,rt.bottom); + ::SelectObject(hdc2,bmp); + } + // ”wŒi‚ð“h‚è‚‚Ԃ· + ::SetBkColor(hdc2,COLORREF(me->m_dwBackColor)); + ::SetBkMode(hdc2,TRANSPARENT); + ::SetPolyFillMode(hdc2,ALTERNATE); + FillRect(hdc2,&rt,me->m_hBkBrush); + + // ƒhƒ[ƒCƒ“ƒOƒf[ƒ^[‚Ì•`‰æ + if(me->m_pCanvas){ + me->m_pCanvas->Draw(hdc2,rt); + } + + if(bDblBuf){ + // ƒ_ƒuƒ‹ƒoƒbƒtƒ@‚Ì“]‘— + ::BitBlt(hdc,0,0,rt.right,rt.bottom,hdc2,0,0,SRCCOPY); + DeleteDC(hdc2); + DeleteObject(bmp); + } + ::EndPaint( hWnd, &ps ); + break; + } + case WM_SYSCOMMAND: + { + if(wParam == SC_CLOSE){ + if(me->windowParam.autoclose){ + me->Close(); + } + me->m_bQuit = true; + me->m_dModalExitCode = IDABORT; + me->AddEventSingle(WM_COMMAND,IDABORT,0); + return false; + } + else if(wParam == WM_MOVENEXT_OVERLAPPED){ + SendMessage(hWnd,WM_MOVENEXT_OVERLAPPED,0,0); + return 0; + } + break; + } + case WM_MOUSEMOVE: + { + me->AddEventSingle(WM_MOUSEMOVE,0,0); + break; + } + case WM_LBUTTONDBLCLK: + { + me->AddEvent(WM_LBUTTONDBLCLK,0,0); + break; + } + case WM_RBUTTONDBLCLK: + { + me->AddEvent(WM_RBUTTONDBLCLK,0,0); + break; + } + case WM_LBUTTONDOWN: + { + if(me->m_dCaptureMode == 0){ + me->AddEvent(WM_LBUTTONDOWN,0,0); + ::SetCapture(hWnd); + me->m_dCaptureMode |= 0x01; + } + else{ + ReleaseCapture(); + } + break; + } + case WM_LBUTTONUP: + { + if(me->m_dCaptureMode & 0x01){ + me->AddEvent(WM_LBUTTONUP,0,0); + me->m_dCaptureMode &= ~0x01; + ReleaseCapture(); + } + break; + } + case WM_RBUTTONDOWN: + { + if(me->m_dCaptureMode == 0){ + me->AddEvent(WM_RBUTTONDOWN,0,0); + ::SetCapture(hWnd); + me->m_dCaptureMode |= 0x02; + } + else{ + ReleaseCapture(); + } + break; + } + case WM_RBUTTONUP: + { + if(me->m_dCaptureMode & 0x02){ + me->AddEvent(WM_RBUTTONUP,0,0); + me->m_dCaptureMode &= ~0x02; + ReleaseCapture(); + } + break; + } + case WM_CAPTURECHANGED: + { + if(me->m_dCaptureMode & 0x01){ + me->AddEvent(WM_CAPTURECHANGED,1,0); + } + if(me->m_dCaptureMode & 0x02){ + me->AddEvent(WM_CAPTURECHANGED,2,0); + } + me->m_dCaptureMode = 0; + break; + } + case WM_SIZE: + { + me->AddEventSingle(WM_SIZE,0,0); + break; + } + case WM_TIMER: + { + if(wParam == 1){ + me->AddEventSingle(WM_TIMER,0,0); + } + break; + } + case WM_DROPFILES: + { + HDROP hDrop = (HDROP)wParam; + me->m_dropfiles.DropFiles(hDrop); + me->AddEvent(WM_DROPFILES,0,0); + break; + } + case WM_KEYDOWN: + { + DWORD st = 0; + if(GetKeyState(VK_SHIFT ) & 0x8000) st |= 0x01; + if(GetKeyState(VK_CONTROL) & 0x8000) st |= 0x02; + if(GetKeyState(VK_MENU ) & 0x8000) st |= 0x04; + me->AddEventSingle(WM_KEYDOWN,wParam,st); + return 0; + } + case WM_KEYDOWN_EX: + { + DWORD st = 0; + if(GetKeyState(VK_SHIFT ) & 0x8000) st |= 0x01; + if(GetKeyState(VK_CONTROL) & 0x8000) st |= 0x02; + if(GetKeyState(VK_MENU ) & 0x8000) st |= 0x04; + me->AddEventSingle(WM_KEYDOWN_EX,wParam,st); + return 0; + } + case WM_COMMAND: + { +#ifdef _DEBUG + TCHAR mes[MAX_PATH]; + wsprintf(mes,"command=%d:%d\n",HIWORD(wParam),LOWORD(wParam)); + OutputDebugString(mes); +#endif + HWND hControl = (HWND)lParam; + int nID = LOWORD(wParam); + int notify = HIWORD(wParam); + if(!notify){ + if(nID == IDABORT){ + // IDABORT‚Æ“¯ˆê‚È‚çquit‚𗧂Ăé + me->m_bQuit = true; + } + me->AddEventSingle(WM_COMMAND,nID,0); + } + else{ + // ƒRƒ“ƒgƒ[ƒ‹’Ê’m + switch(notify) + { + case CBN_SETFOCUS: + case LBN_SETFOCUS: + case EN_SETFOCUS: + case BN_SETFOCUS: + // TreeView - ListViewˆÈŠO‚̃Rƒ“ƒgƒ[ƒ‹‚ªƒtƒH[ƒJƒX‚ðŽó‚¯Žæ‚Á‚½‚±‚Æ‚ð’Ê’m‚·‚é + me->m_hLastFocusControl = hControl; + break; + case LBN_DBLCLK: + // LISTBOX‚ªƒ_ƒuƒ‹ƒNƒŠƒbƒN‚³‚ꂽ + me->AddEvent(WM_COMMAND,nID,0); + default: + break; + } + } + break; + } + case WM_NOTIFY: + { + NMHDR* notify = (NMHDR*)lParam; + switch(notify->code) + { + case NM_SETFOCUS: + { + // TreeView - ListView‚ªƒtƒH[ƒJƒX‚ðŽó‚¯Žæ‚Á‚½‚±‚Æ‚ð’Ê’m‚·‚é + me->m_hLastFocusControl = notify->hwndFrom; + return 0; + } + case TVN_SELCHANGED: + { + // TreeView‚Ì‘I‘ð‚ª•ÏX‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚³‚ê‚é + LPNMTREEVIEW pnmTv = (LPNMTREEVIEW)lParam; + me->AddEvent(WM_COMMAND,pnmTv->hdr.idFrom,0); + return 0; + } + case NM_DBLCLK: + { + // ListView - TreeView‚Ń_ƒuƒ‹ƒNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚³‚ꂽ + LPNMITEMACTIVATE pnmLv = (LPNMITEMACTIVATE) lParam; + me->AddEvent(WM_COMMAND,pnmLv->hdr.idFrom,0); + return 0; + } + case LVN_COLUMNCLICK: + { + // ListView‚ŃJƒ‰ƒ€‚ªƒNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚·‚é + LPNMLISTVIEW pnmv = (LPNMLISTVIEW) lParam; + DWORD addr = ::GetWindowLong(pnmv->hdr.hwndFrom,GWL_USERDATA); + if(addr){ + // ƒJƒ‰ƒ€ƒNƒŠƒbƒN‚É‚æ‚éƒ\[ƒeƒBƒ“ƒO‚ðs‚¤ + CComObject* pCtrl = (CComObject*)addr; + pCtrl->ListSort(pnmv->iSubItem); + } + return 0; + } + case LVN_ENDLABELEDIT: + { + // ListView‚ō€–Ú‚ª•ÒW‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚·‚é + NMLVDISPINFO* pdi = (NMLVDISPINFO*) lParam; + if(pdi->item.mask & LVIF_TEXT){ + ListView_SetItemText(pdi->hdr.hwndFrom,pdi->item.iItem,0,pdi->item.pszText); + } + return 0; + } + case LVN_KEYDOWN: + { + // ListView‚ŃL[ƒ{[ƒh‚ª‰Ÿ‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚·‚é + LPNMLVKEYDOWN pnkd = (LPNMLVKEYDOWN) lParam; + if(pnkd->wVKey == VK_SPACE){ + // ƒXƒy[ƒXƒL[‚Ń_ƒuƒ‹ƒNƒŠƒbƒN‚Æ“¯‚¶Œø‰Ê‚ðŽ‚½‚¹‚é + me->AddEvent(WM_COMMAND,pnkd->hdr.idFrom,0); + } + else if(pnkd->wVKey == VK_DELETE){ + // ƒfƒŠ[ƒg + me->AddEvent(WM_NOTIFY,pnkd->hdr.idFrom,VK_DELETE); + } + else if(pnkd->wVKey == VK_F2){ + // ƒ‰ƒxƒ‹•ÒWŠJŽn + int idx = ListView_GetNextItem(pnkd->hdr.hwndFrom,-1,LVNI_FOCUSED); + ListView_EditLabel(pnkd->hdr.hwndFrom,idx); + } + return 0; + } + case TVN_KEYDOWN: + { + LPNMTVKEYDOWN ptvkd = (LPNMTVKEYDOWN) lParam; + if(ptvkd->wVKey == VK_DELETE){ + // ƒfƒŠ[ƒg + me->AddEvent(WM_NOTIFY,ptvkd->hdr.idFrom,VK_DELETE); + } + return 0; + } + case NM_RCLICK: + { + // ListView - TreeView ‚ʼnEƒNƒŠƒbƒN‚³‚ꂽ‚±‚Æ‚ð’Ê’m‚·‚é + LPNMHDR lpnmh = (LPNMHDR) lParam; + DWORD addr = ::GetWindowLong(lpnmh->hwndFrom,GWL_USERDATA); + if(addr){ + CComObject* pCtrl = (CComObject*)addr; + pCtrl->OnRClick(); // ƒRƒ“ƒgƒ[ƒ‹‚ɉEƒNƒŠƒbƒN‚ð’Ê’m‚µ‘Oˆ—‚ðs‚킹‚é + } + me->AddEvent(WM_NOTIFY,lpnmh->idFrom,VK_RBUTTON); + return 0; + } + default: + break; + } + break; + } + case WM_CTLCOLORSTATIC: + { + HDC hdc = (HDC)wParam; + ::SetBkColor(hdc,me->m_dwBackColor); + ::SetTextColor(hdc,::GetSysColor(COLOR_WINDOWTEXT)); + return (LPARAM)me->m_hBkBrush; + } + case WM_CTLCOLOREDIT: + case WM_CTLCOLORLISTBOX: + case WM_CTLCOLORMSGBOX: + { + if(me->m_pForm){ + // ƒtƒH[ƒ€‚ÅŽw’肳‚ꂽƒRƒ“ƒgƒ[ƒ‹”wŒiƒuƒ‰ƒV‚ðŽæ“¾‚·‚é + HDC hdc = (HDC)wParam; + ::SetBkColor(hdc,me->m_pForm->GetControlColor()); + ::SetTextColor(hdc,::GetSysColor(COLOR_WINDOWTEXT)); + return (LPARAM)me->m_pForm->GetControlColorBrush(); + } + break; + } + case WM_SETCURSOR: + { + if(me->m_dWaitCursor > 0){ + ::SetCursor(::LoadCursor(NULL,IDC_WAIT)); + return true; + } + break; + } + } + return ::DefWindowProc( hWnd, uMsg, wParam, lParam ); +} + +STDMETHODIMP COverlappedWindow::DoEvent(VARIANT *varResult) +{ + SafeCreateWnd(); + + CComVariant ret; + ret = 0; + + // ƒCƒxƒ“ƒLƒ…[‚̎擾 + EnterCriticalSection(&m_objEventDataProtection); + CComObject* pEv = NULL; + if(!m_lstEvent.empty()){ + // ƒCƒxƒ“ƒgƒŠƒXƒg‚Ƀf[ƒ^[‚ª“ü‚Á‚Ä‚¢‚é + pEv = m_lstEvent.front(); + m_lstEvent.pop_front(); + } + if(m_lstEvent.empty()){ + // ‚±‚êˆÈãƒƒbƒZ[ƒW‚ª‚È‚¢‚Ì‚È‚ç‚΁AƒCƒxƒ“ƒgƒtƒ‰ƒO‚ðƒŠƒZƒbƒg‚·‚é + ResetEvent(m_hWaitEvent); + } + else{ + // ‚Ü‚¾ƒƒbƒZ[ƒW‚ª‚ ‚é‚̂ŃCƒxƒ“ƒg‚ð‚½‚Ä‚é + SetEvent(m_hWaitEvent); + } + LeaveCriticalSection(&m_objEventDataProtection); + + // Žæ‚èo‚µ‚½ƒCƒxƒ“ƒg‚̏ˆ— + if(pEv){ + // •Ô“šƒCƒxƒ“ƒgƒR[ƒh + ret = pEv->GetMessage(); + // + if(pEv->GetMessage() == WM_TIMER){ + // ƒ^ƒCƒ}[ƒCƒxƒ“ƒg‚ÍUI‚ÉŠÖŒW‚È‚­Š„‚荞‚Ü‚ê‚邽‚ß + // ƒCƒxƒ“ƒgƒvƒƒpƒeƒB[‚ɂ̓Zƒbƒg‚¹‚¸Aƒ‰ƒCƒY‚·‚邾‚¯B + Fire_OnTimer(); + ClassObjectInvoke(L"OnTimer"); + } + else{ + // ‚»‚Ì‚Ù‚©‚̃Cƒxƒ“ƒg‚Í Œ»Ý‚̃Cƒxƒ“ƒgƒIƒuƒWƒFƒNƒg‚ðƒvƒƒpƒeƒB[‚ɃZƒbƒg‚·‚é + if(m_pEvent){ + // ŒÃ‚¢ƒIƒuƒWƒFƒNƒg‚Ì”jŠü + m_pEvent->Release(); + m_pEvent = NULL; + } + m_pEvent = pEv; + m_pEvent->AddRef(); + // ‚±‚̃IƒuƒWƒFƒNƒg‚ðˆø”‚Æ‚µ‚Ä“n‚·‚½‚߂ɃCƒ“ƒ^[ƒtƒFƒCƒX‚𐶐¬‚·‚é + IUnknown* pUnk = NULL; + QueryInterface(IID_IUnknown,(void**)&pUnk); + // ƒCƒxƒ“ƒg‚ɑ΂·‚郉ƒCƒY + switch(pEv->GetMessage()) + { + case WM_KEYDOWN: + { + Fire_OnKeydown(); + Fire_OnKeydownEx(pUnk); + ClassObjectInvoke(L"OnKeydown"); + break; + } + case WM_KEYDOWN_EX: + { + Fire_OnKeydown2(); + Fire_OnKeydown2Ex(pUnk); + ClassObjectInvoke(L"OnKeydown2"); + break; + } + case WM_MOUSEMOVE: + { + Fire_OnMouseMove(); + Fire_OnMouseMoveEx(pUnk); + ClassObjectInvoke(L"OnMouseMove"); + break; + } + case WM_LBUTTONDBLCLK: + { + Fire_OnDblClick(); + Fire_OnDblClickEx(pUnk); + ClassObjectInvoke(L"OnDblClick"); + break; + } + case WM_LBUTTONDOWN: + { + Fire_OnClick(); + Fire_OnClickEx(pUnk); + ClassObjectInvoke(L"OnClick"); + break; + } + case WM_RBUTTONDBLCLK: + { + Fire_OnRDblClick(); + Fire_OnRDblClickEx(pUnk); + ClassObjectInvoke(L"OnRDblClick"); + break; + } + case WM_RBUTTONDOWN: + { + Fire_OnRClick(); + Fire_OnRClickEx(pUnk); + ClassObjectInvoke(L"OnRClick"); + break; + } + case WM_LBUTTONUP: + { + Fire_OnClickOut(); + Fire_OnClickOutEx(pUnk); + ClassObjectInvoke(L"OnClickOut"); + break; + } + case WM_RBUTTONUP: + { + Fire_OnRClickOut(); + Fire_OnRClickOutEx(pUnk); + ClassObjectInvoke(L"OnRClickOut"); + break; + } + case WM_CAPTURECHANGED: + { + if(pEv->GetParam() == 1){ + Fire_OnClickCancel(); + Fire_OnClickCancelEx(pUnk); + ClassObjectInvoke(L"OnClickCancel"); + } + else{ + Fire_OnRClickCancel(); + Fire_OnRClickCancelEx(pUnk); + ClassObjectInvoke(L"OnRClickCancel"); + } + break; + } + case WM_SIZE: + { + Fire_OnSize(); + Fire_OnSizeEx(pUnk); + ClassObjectInvoke(L"OnSize"); + break; + } + case WM_COMMAND: + { + int nID = pEv->GetParam(); + switch(nID) + { + case IDOK: + if(m_bDefaultAction){ + m_bQuit = true; + } + m_dModalExitCode = IDOK; + Fire_OnOK(); + Fire_OnOKEx(pUnk); + ClassObjectInvoke(L"OnOK"); + break; + case IDCANCEL: + if(m_bDefaultAction){ + m_bQuit = true; + } + m_dModalExitCode = IDCANCEL; + Fire_OnCancel(); + Fire_OnCancelEx(pUnk); + ClassObjectInvoke(L"OnCancel"); + break; + case IDABORT: + m_bQuit = true; + m_dModalExitCode = IDABORT; + Fire_OnExit(); + Fire_OnExitEx(pUnk); + ClassObjectInvoke(L"OnExit"); + break; + default: + Fire_OnCommand(); + Fire_OnCommandEx(pUnk); + ClassObjectInvoke(L"OnCommand"); + } + // ŠÖ˜A‚¯‚ç‚ꂽƒRƒ“ƒgƒ[ƒ‹‚ª‚ ‚é‚Ì‚©H + if(m_pForm){ + BSTR eventname = NULL; + if(m_pForm->FindControlEventName(nID,&eventname)){ + if(SysStringLen(eventname) > 0){ + ClassObjectInvoke(eventname); + } + SysFreeString(eventname); + } + } + // ƒƒjƒ…[‚ÌŒŸõ + if(m_hMenu && nID >= 100){ + map::iterator p; + p = m_cMenuMap.find(nID); + if(p != m_cMenuMap.end()){ + // ”­Œ©‚³‚ꂽ + ClassObjectInvoke(p->second); + } + } + break; + } + case WM_DROPFILES: + { + Fire_OnDropFiles(); + Fire_OnDropFilesEx(pUnk); + ClassObjectInvoke(L"OnDropFiles"); + break; + } + case WM_NOTIFY: + { + switch(pEv->GetLParam()) + { + case VK_DELETE: + Fire_OnContextDelete(); + Fire_OnContextDeleteEx(pUnk); + ClassObjectInvoke(L"OnContextDelete"); + break; + case VK_RBUTTON: + Fire_OnContextMenu(); + Fire_OnContextMenuEx(pUnk); + ClassObjectInvoke(L"OnContextMenu"); + break; + } + break; + } + } + // ‚±‚̈ø”‚Æ‚µ‚Ä“n‚µ‚½ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ð‰ð•ú‚·‚é + if(pUnk){ + pUnk->Release(); + } + } + // ˆ—‚³‚ꂽƒCƒxƒ“ƒg‚͉ð•ú‚·‚é + pEv->Release(); + } + else{ + // ƒCƒxƒ“ƒg‚ª‚È‚¢ê‡‚̓Cƒxƒ“ƒg‚̃NƒŠƒA + if(m_pEvent){ + // ŒÃ‚¢ƒIƒuƒWƒFƒNƒg‚Ì”jŠü + m_pEvent->Release(); + m_pEvent = NULL; + } + } + // ƒCƒxƒ“ƒgƒR[ƒh‚ð–ß‚·B + ret.Detach(varResult); + return S_OK; +} + +void COverlappedWindow::AddEventSingle(int message, WPARAM wParam, LPARAM lParam) +{ + // ƒCƒxƒ“ƒgƒoƒbƒtƒ@‚É–¢ˆ—‚̃Cƒxƒ“ƒg‚ª‚ ‚ê‚΃Cƒxƒ“ƒg‚𔭍s‚µ‚È‚¢B + BOOL bFind = false; + EnterCriticalSection(&m_objEventDataProtection); + list*>::iterator p = m_lstEvent.begin(); + while(p != m_lstEvent.end()){ + if((*p)->GetMessage() == message && (*p)->GetParam() == wParam){ + bFind = true; + break; + } + p++; + } + LeaveCriticalSection(&m_objEventDataProtection); + if(!bFind){ + // “¯ˆêƒCƒxƒ“ƒg‚ª‚È‚¯‚ê‚΃Cƒxƒ“ƒg‚Ì”­s‚ðs‚¤ + AddEvent(message,wParam,lParam); + } +} + +void COverlappedWindow::AddEvent(int message,WPARAM wParam,LPARAM lParam) +{ + // ƒCƒxƒ“ƒg”­¶Žž‚̃}ƒEƒXˆÊ’u‚ðƒNƒ‰ƒCƒGƒ“ƒgÀ•W‚É•ÏŠ·‚·‚é + POINT pt,lp; + DWORD pos = GetMessagePos(); + pt.x = LOWORD(pos); + pt.y = HIWORD(pos); + lp.x = lp.y = 0; + if(m_hPopupWnd){ + ::ScreenToClient(m_hPopupWnd,&pt); + // À•WŒn‚Ì•ÏŠ· + lp = pt; + HDC hdc = ::GetDC(m_hPopupWnd); + POINT org; + RECT rct; + ::GetClientRect(m_hPopupWnd,&rct); + ::SetViewportOrgEx(hdc,0,rct.bottom,&org); + int md = ::GetMapMode(hdc); + ::SetMapMode(hdc,MM_LOMETRIC); + ::DPtoLP(hdc,&lp,1); + ::SetMapMode(hdc,md); + ::SetViewportOrgEx(hdc,org.x,org.y,NULL); + ::ReleaseDC(m_hPopupWnd,hdc); + } + + // ƒCƒxƒ“ƒg‚̐ςݏグ + EnterCriticalSection(&m_objEventDataProtection); + CComObject* pEvent; + if(pEvent->CreateInstance(&pEvent) == S_OK){ + pEvent->AddRef(); + pEvent->SetData(message,wParam,lParam,pt,lp); + m_lstEvent.push_back(pEvent); + } + LeaveCriticalSection(&m_objEventDataProtection); + + // ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‹‚ðƒVƒOƒiƒ‹‚É‚·‚é + SetEvent(m_hWaitEvent); + + if(windowParam.automessageloop){ + // ‚½‚¾‚¿‚ɃCƒxƒ“ƒgˆ—‚ðs‚¤ + CComVariant tmp; + DoEvent(&tmp); + } +} + + +STDMETHODIMP COverlappedWindow::Draw() +{ + // •`‰æ‚·‚é + if(m_hPopupWnd){ + ::InvalidateRect(m_hPopupWnd,NULL,true); + ::UpdateWindow(m_hPopupWnd); + } + return S_OK; +} + + +STDMETHODIMP COverlappedWindow::get_IsEventEmpty(BOOL *pVal) +{ + // ƒCƒxƒ“ƒg‚ª‹ó‚È‚çtrue + *pVal = m_lstEvent.empty()?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::Open(VARIANT caption,VARIANT* pvarUnk) +{ + SafeCreateWnd(); + CComVariant tmp; + if((caption.vt != VT_ERROR && caption.vt != VT_NULL) && tmp.ChangeType(VT_BSTR,&caption) == S_OK){ + put_Caption(tmp.bstrVal); + } + put_Enable(true); + put_Visible(true); + m_bQuit = false; + m_dModalExitCode = 0; // ƒ‚[ƒ_ƒ‹•Ô“šƒR[ƒh + CreateThisInterface(pvarUnk); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::Close() +{ + // ƒ`ƒƒƒCƒ‹ƒh‚ðŽ‚Á‚Ä‚¢‚éê‡‚́Aƒ`ƒƒƒCƒ‹ƒh‚àƒNƒ[ƒY‚·‚é + list*>::iterator pWnd = m_lstChild.begin(); + while(pWnd != m_lstChild.end()){ + (*pWnd)->Close(); + pWnd++; + } + // ‚±‚̃EƒBƒ“ƒhƒE‚ð”ñ•\Ž¦‚É‚·‚é + put_Visible(false); + m_bQuit = true; + + // ƒNƒ‰ƒXƒIƒuƒWƒFƒNƒg‚Ì•úŠü + if( m_pClassDisp && m_bAutoReleaseClassObject){ + m_pClassDisp->Release(); + m_pClassDisp = NULL; + } + + // ƒtƒH[ƒJƒX‚ðˆÚ“®‚·‚é + if(m_hParentWnd){ + ::SetActiveWindow(m_hParentWnd); + ::SetFocus(m_hParentWnd); + } + else{ + MoveNextOverlapped(); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_DoubleBuffer(BOOL *pVal) +{ + *pVal = windowParam.doublebuffer?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_DoubleBuffer(BOOL newVal) +{ + windowParam.doublebuffer = newVal; + return S_OK; +} + + +STDMETHODIMP COverlappedWindow::get_TopMost(BOOL *pVal) +{ + SafeCreateWnd(); + DWORD exstyle = ::GetWindowLong(m_hPopupWnd,GWL_EXSTYLE); + *pVal = (exstyle & WS_EX_TOPMOST)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_TopMost(BOOL newVal) +{ + SafeCreateWnd(); + ::SetWindowPos(m_hPopupWnd,newVal?HWND_TOPMOST:HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_PosX(short *pVal) +{ + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + windowParam.posX = (int)pls.rcNormalPosition.left; + } + *pVal = windowParam.posX; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_PosX(short newVal) +{ + windowParam.posX = newVal; + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + ::SetWindowPos(m_hPopupWnd,NULL, + windowParam.posX, + pls.rcNormalPosition.top, + 0,0,SWP_NOZORDER|SWP_NOSIZE); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_PosY(short *pVal) +{ + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + windowParam.posY = (int)pls.rcNormalPosition.top; + } + *pVal = windowParam.posY; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_PosY(short newVal) +{ + windowParam.posY = newVal; + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + ::SetWindowPos(m_hPopupWnd,NULL, + pls.rcNormalPosition.left, + windowParam.posY, + 0,0,SWP_NOZORDER|SWP_NOSIZE); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Width(short *pVal) +{ + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + windowParam.width = (int)(pls.rcNormalPosition.right - pls.rcNormalPosition.left); + } + *pVal = windowParam.width; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Width(short newVal) +{ + windowParam.width = newVal; + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + ::SetWindowPos(m_hPopupWnd,NULL, + 0,0, + windowParam.width, + pls.rcNormalPosition.bottom - pls.rcNormalPosition.top,SWP_NOZORDER|SWP_NOMOVE); + } + if(m_pForm){ + // ƒtƒH[ƒ€‚̃TƒCƒY‚ð•ÏX‚·‚é + m_pForm->SetWindowSize(windowParam.width,windowParam.height,windowParam.GetStyle() & WS_THICKFRAME); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Height(short *pVal) +{ + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + windowParam.height = (short)(pls.rcNormalPosition.right - pls.rcNormalPosition.left); + } + *pVal = windowParam.height; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Height(short newVal) +{ + windowParam.height = newVal; + if(m_hPopupWnd){ + WINDOWPLACEMENT pls = {0}; + pls.length = sizeof(WINDOWPLACEMENT); + ::GetWindowPlacement(m_hPopupWnd,&pls); + ::SetWindowPos(m_hPopupWnd,NULL,0,0, + pls.rcNormalPosition.right - pls.rcNormalPosition.left, + windowParam.height, + SWP_NOZORDER|SWP_NOMOVE); + } + if(m_pForm){ + // ƒtƒH[ƒ€‚̃TƒCƒY‚ð•ÏX‚·‚é + m_pForm->SetWindowSize(windowParam.width,windowParam.height,windowParam.GetStyle() & WS_THICKFRAME); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_AcceptFiles(BOOL *pVal) +{ + SafeCreateWnd(); + DWORD exstyle = ::GetWindowLong(m_hPopupWnd,GWL_EXSTYLE); + *pVal = (exstyle & WS_EX_ACCEPTFILES)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_AcceptFiles(BOOL newVal) +{ + SafeCreateWnd(); + DWORD exstyle = ::GetWindowLong(m_hPopupWnd,GWL_EXSTYLE); + exstyle &= ~WS_EX_ACCEPTFILES; + exstyle |= newVal?WS_EX_ACCEPTFILES:0; + ::SetWindowLong(m_hPopupWnd,GWL_EXSTYLE,exstyle); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::SetForegroundWindow() +{ + SafeCreateWnd(); + ::SetForegroundWindow(m_hPopupWnd); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::SetFocus() +{ + SafeCreateWnd(); + ::SetFocus(m_hPopupWnd); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Enable(BOOL *pVal) +{ + SafeCreateWnd(); + *pVal = ::IsWindowEnabled(m_hPopupWnd)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Enable(BOOL newVal) +{ + SafeCreateWnd(); + ::EnableWindow(m_hPopupWnd,newVal); + if(m_pForm){ + m_pForm->EnableAllControl(newVal); + ::SetActiveWindow(m_hPopupWnd); + } + return S_OK; +} + + +STDMETHODIMP COverlappedWindow::get_Iconic(BOOL *pVal) +{ + SafeCreateWnd(); + *pVal = ::IsIconic(m_hPopupWnd)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Iconic(BOOL newVal) +{ + SafeCreateWnd(); + ::ShowWindow(m_hPopupWnd,newVal?SW_MINIMIZE:SW_SHOWNORMAL); + return S_OK; +} + + +STDMETHODIMP COverlappedWindow::get_Zoomed(BOOL *pVal) +{ + SafeCreateWnd(); + *pVal = ::IsZoomed(m_hPopupWnd)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Zoomed(BOOL newVal) +{ + SafeCreateWnd(); + ::ShowWindow(m_hPopupWnd,newVal?SW_SHOWMAXIMIZED:SW_SHOWNORMAL); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Visible(BOOL *pVal) +{ + *pVal = VB_FALSE; + if(::IsWindow(m_hPopupWnd)){ + // ƒEƒBƒ“ƒhƒE‚ªì¬Ï‚Ý‚Å‚ ‚ê‚Î’²¸‚·‚é + DWORD style = ::GetWindowLong(m_hPopupWnd,GWL_STYLE); + *pVal = (style & WS_VISIBLE)?VB_TRUE:VB_FALSE; + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Visible(BOOL newVal) +{ + if(!newVal && !::IsWindow(m_hPopupWnd)){ + // FALSE‚È‚çA‚ ‚¦‚č쐬‚ÍŽŽ‚Ý‚È‚¢ + return S_OK; + } + SafeCreateWnd(); + ::ShowWindow(m_hPopupWnd,newVal?SW_SHOWNORMAL:SW_HIDE); + ::SetActiveWindow(m_hPopupWnd); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::WaitEvent(VARIANT varTim,BOOL* pRet) +{ + SafeCreateWnd(); + *pRet = false; + + // ‘Ò‹@ŽžŠÔ‚̎擾 + DWORD sleeptim = 1000; + CComVariant tim; + if(tim.ChangeType(VT_I4,&varTim) == S_OK){ + sleeptim = (DWORD)tim.lVal; + } + if(sleeptim == 0){ + sleeptim = INFINITE; + } + + HANDLE hEvent[MAXIMUM_WAIT_OBJECTS] = { NULL }; + HWND hWnd [MAXIMUM_WAIT_OBJECTS] = { NULL }; + int cnt = 0; + SetWaitParam(&cnt,hWnd,hEvent); + *pRet = MessageLoop(sleeptim,cnt,hWnd,hEvent)?VB_TRUE:VB_FALSE; + + return S_OK; +} + +STDMETHODIMP COverlappedWindow::SetMenu(VARIANT fmt) +{ + SafeCreateWnd(); + HRESULT hRet = S_OK; + CComVariant tmp; + if(tmp.ChangeType(VT_BSTR,&fmt) == S_OK){ + UINT len = SysStringByteLen(tmp.bstrVal)+1; + LPSTR pBuf = new CHAR[len]; + int cnt = WideCharToMultiByte(GetACP(),0,tmp.bstrVal,-1,pBuf,len,NULL,NULL); + pBuf[cnt - 1] = 0; + // ŒÃ‚¢ƒƒjƒ…[‚ð”jŠü‚·‚é + if(m_hMenu){ + m_cMenuMap.clear(); + ::SetMenu(m_hPopupWnd,NULL); + DestroyMenu(m_hMenu); + m_hMenu = NULL; + } + if(cnt > 1){ + // €–Ú‚ª‚ ‚ê‚΃ƒjƒ…[–¼‚ðƒp[ƒX‚·‚é + m_hMenu = CreateMenu(); + TCHAR menuname[MAX_PATH]; + TCHAR szSubmenu[MAX_PATH]; + LPSTR p = pBuf; + HMENU hPopupMenu = NULL; + int lv1 = 0; + int lv2 = 0; + int cmd = 0; + while(*p){ + while(*p == ' ' || *p == '\t')p++; // ƒuƒ‰ƒ“ƒNƒXƒLƒbƒv + if(*p == '/'){ + p++; + // ƒ|ƒbƒvƒAƒbƒvƒƒjƒ…[‚̍쐬 + if(hPopupMenu){ + // Šù‘¶‚̃|ƒbƒvƒAƒbƒv‚𖄂ߍž‚Þ + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_SUBMENU | MIIM_TYPE; + inf.fType = MFT_STRING; + inf.dwTypeData = szSubmenu; + inf.hSubMenu = hPopupMenu; + InsertMenuItem(m_hMenu,lv1,true,&inf); + } + lv1++; + lv2 = 0; + cmd = 0; + hPopupMenu = CreatePopupMenu(); + LPSTR d = p; + while(*p && *p != ',' && *p != '/' && *p != ':'){ + p = CharNext(p); + } + ZeroMemory(szSubmenu,MAX_PATH); + CopyMemory(szSubmenu,d,p-d); + if(*p == ',' || *p == ':'){ + p++; + } + } + else{ + // ƒƒjƒ…[‚̍쐬 + if(hPopupMenu){ + LPSTR d = p; + while(*p && *p != ',' && *p != '/' && *p != ':'){ + p = CharNext(p); + } + ZeroMemory(menuname,MAX_PATH); + CopyMemory(menuname,d,p-d); + // ƒRƒ}ƒ“ƒhƒZƒpƒŒ[ƒ^[‚ðŒŸ¸‚·‚é + _bstr_t eventname; + LPSTR findcmd = strchr(menuname,'@'); + if(findcmd){ + *findcmd = 0; + eventname = (LPCSTR)(findcmd + 1); + } + else{ + CHAR tmp[64]; + wsprintf(tmp,"OnMenu%d",lv1*100+cmd); + eventname = tmp; + } + m_cMenuMap.insert(pair(lv1*100+cmd,eventname)); + // ƒƒjƒ…[‚̍쐬 + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_TYPE|MIIM_ID; + inf.fType = MFT_STRING; + inf.wID = lv1 * 100 + cmd; + inf.dwTypeData = menuname; + InsertMenuItem(hPopupMenu,lv2,true,&inf); + lv2++; + cmd++; + // ƒZƒpƒŒ[ƒ^[‚ÌŽw’è‚©? + if(*p == ','){ + p++; + } + else if(*p == ':'){ + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_TYPE; + inf.fType = MFT_SEPARATOR; + InsertMenuItem(hPopupMenu,lv2,true,&inf); + p++; + lv2++; + } + } + } + } + // –¢‘}“ü‚̃|ƒbƒvƒAƒbƒvƒƒjƒ…[‚Ì‘}“ü + if(hPopupMenu){ + // Šù‘¶‚̃|ƒbƒvƒAƒbƒv‚𖄂ߍž‚Þ + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_SUBMENU | MIIM_TYPE; + inf.fType = MFT_STRING; + inf.dwTypeData = szSubmenu; + inf.hSubMenu = hPopupMenu; + InsertMenuItem(m_hMenu,lv1,true,&inf); + } + ::SetMenu(m_hPopupWnd,m_hMenu); + } + delete[]pBuf; + } + return hRet; +} + +STDMETHODIMP COverlappedWindow::TrackPopupMenu(VARIANT text, VARIANT cmd,VARIANT* pRet) +{ + SafeCreateWnd(); + CComVariant varCmd; + CComVariant varText; + CComVariant varRet; + varRet = 0; + + int nCommand = 0; + if(varCmd.ChangeType(VT_I2,&cmd) == S_OK){ + nCommand = varCmd.iVal; + } + if(varText.ChangeType(VT_BSTR,&text) == S_OK){ + TCHAR menuname[MAX_PATH]; + UINT len = SysStringByteLen(varText.bstrVal)+1; + LPSTR pBuf = new CHAR[len]; + int cnt = WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,pBuf,len,NULL,NULL); + pBuf[cnt - 1] = 0; + LPSTR p = pBuf; + int lv = 0; + int cmd = 0; + HMENU hPopupMenu = CreatePopupMenu(); + while(*p){ + LPSTR d = p; + while(*p == ' ' || *p == '\t'){ + p++; + } + while(*p && *p != ',' && *p != '/' && *p != ':'){ + p = CharNext(p); + } + ZeroMemory(menuname,MAX_PATH); + CopyMemory(menuname,d,p-d); + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_TYPE|MIIM_ID; + inf.fType = MFT_STRING; + if(nCommand != 0){ + inf.wID = nCommand + cmd; + } + else{ + // ƒRƒ}ƒ“ƒhƒx[ƒX‚ª0‚È‚ç‚΃Rƒ}ƒ“ƒhƒCƒxƒ“ƒg‚Í”­¶‚³‚¹‚È‚¢B + // TrackPopupMenu‚̓Rƒ}ƒ“ƒh‚ð‘I‘ð‚µ‚È‚©‚Á‚½ê‡‚Í0‚ð•Ô‚·‚½‚߁A0‚æ‚è‚à‘å‚«‚È’l‚É‚·‚é•K—v‚ª‚ ‚éB + inf.wID = nCommand + cmd + 1; + } + inf.dwTypeData = menuname; + InsertMenuItem(hPopupMenu,lv,true,&inf); + lv++; + cmd++; + if(*p == ',' || *p == '/'){ + p++; + } + else if(*p == ':'){ + inf.fMask = MIIM_TYPE; + inf.fType = MFT_SEPARATOR; + InsertMenuItem(hPopupMenu,lv,true,&inf); + p++; + lv++; + } + } + delete[]pBuf; + // TrackPopupMene + DWORD pos = GetMessagePos(); + ::SetFocus(m_hPopupWnd); + varRet = (SHORT)::TrackPopupMenuEx(hPopupMenu + ,TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON | + (nCommand==0?(TPM_NONOTIFY|TPM_RETURNCMD):0) // ƒRƒ}ƒ“ƒhƒx[ƒX‚ª0‚Å‚ ‚ê‚΁AƒRƒ}ƒ“ƒhƒCƒxƒ“ƒg‚ð’Ê’m‚³‚¹‚È‚¢B + ,LOWORD(pos),HIWORD(pos),m_hPopupWnd,NULL); + DestroyMenu(hPopupMenu); + } + varRet.Detach(pRet); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_HWND(long *pVal) +{ + *pVal = (LONG)m_hPopupWnd; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::GetSysColor(VARIANT typ, VARIANT *col) +{ + // ƒVƒXƒeƒ€ƒJƒ‰[‚̎擾 + CComVariant varType; + CComVariant varRet; + varType.ChangeType(VT_I2,&typ); + varRet = (long)::GetSysColor(varType.iVal); + varRet.Detach(col); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::SetTimer(VARIANT tim,BOOL* pVal) +{ + SafeCreateWnd(); + + CComVariant varTim; + long timer = 0; + if(varTim.ChangeType(VT_I4,&tim) == S_OK){ + timer = varTim.lVal; + } + if(timer){ + *pVal = ::SetTimer(m_hPopupWnd,1,timer,NULL)?VB_TRUE:VB_FALSE; + } + else{ + *pVal = ::KillTimer(m_hPopupWnd,1)?VB_TRUE:VB_FALSE; + } + return S_OK; +} + + +STDMETHODIMP COverlappedWindow::CheckMenu(VARIANT cmd, VARIANT mode) +{ + SafeCreateWnd(); + if(!m_hMenu){ + ErrorInfo(IDS_ERR_NOCREATEMENU); + return DISP_E_EXCEPTION; + } + int nCmd = 0; + int nMode = 0; + CComVariant varCmd,varMode; + if(varCmd.ChangeType(VT_I2,&cmd) == S_OK){ + nCmd = varCmd.iVal; + } + if(varMode.ChangeType(VT_I2,&mode) == S_OK){ + nMode = varMode.iVal; + } + if(nCmd >= 100){ + // ƒƒjƒ…[ƒRƒ}ƒ“ƒh‚Í100ˆÈã‚Å‚ ‚é‚̂ŁB + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_STATE; + inf.fState = nMode?MFS_CHECKED:MFS_UNCHECKED; + ::SetMenuItemInfo(m_hMenu,nCmd,false,&inf); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::EnableMenu(VARIANT cmd, VARIANT mode) +{ + SafeCreateWnd(); + if(!m_hMenu){ + ErrorInfo(IDS_ERR_NOCREATEMENU); + return DISP_E_EXCEPTION; + } + int nCmd = 0; + int nMode = 0; + CComVariant varCmd,varMode; + if(varCmd.ChangeType(VT_I2,&cmd) == S_OK){ + nCmd = varCmd.iVal; + } + if(varMode.ChangeType(VT_I2,&mode) == S_OK){ + nMode = varMode.iVal; + } + if(nCmd >= 100){ + // ƒƒjƒ…[ƒRƒ}ƒ“ƒh‚Í100ˆÈã‚Å‚ ‚é‚̂ŁB + MENUITEMINFO inf = {0}; + inf.cbSize = sizeof(MENUITEMINFO); + inf.fMask = MIIM_STATE; + inf.fState = nMode?MFS_ENABLED:MFS_GRAYED; + ::SetMenuItemInfo(m_hMenu,nCmd,false,&inf); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_CreateNoCloseWindow(BOOL *pVal) +{ + // ƒNƒ[ƒY‹ÖŽ~ƒEƒBƒ“ƒhƒE? + *pVal = windowParam.noclose?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_CreateNoCloseWindow(BOOL newVal) +{ + if(m_hPopupWnd){ + // ƒEƒBƒ“ƒhƒEì¬Œã‚É‚ÍŽw’è‚Å‚«‚È‚¢ + ErrorInfo(IDS_ERR_CREATEDWND); + return DISP_E_EXCEPTION; + } + windowParam.noclose = newVal; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Canvas(VARIANT *pVal) +{ + // ƒhƒ[ƒCƒ“ƒOƒCƒ“ƒ^[ƒtƒFƒCƒX‚ð“n‚· + ::VariantInit(pVal); + IUnknown* pUnk = NULL; + if(m_pCanvas && + m_pCanvas->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Event(VARIANT *pVal) +{ + ::VariantInit(pVal); + if(m_pEvent){ + // ƒCƒxƒ“ƒgƒCƒ“ƒ^[ƒtƒFƒCƒX‚̎擾 + IUnknown* pUnk = NULL; + if(m_pEvent->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_DropFiles(VARIANT *pVal) +{ + m_dropfiles.GetPathArray(pVal); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Quit(BOOL *pVal) +{ + *pVal = m_bQuit?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Quit(BOOL newVal) +{ + m_bQuit = newVal; + if(m_hPopupWnd){ + // ƒCƒxƒ“ƒg‚𔭐¶‚³‚¹‘Ò‹@ó‘Ô‚ð‰ð‚­ + SetEvent(m_hWaitEvent); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Form(VARIANT *pVal) +{ + // ƒtƒH[ƒ€‚ÌŒöŠJ + ::VariantInit(pVal); + if(m_pForm){ + IUnknown* pUnk = NULL; + if(m_pForm->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Style(long *pVal) +{ + if(m_hPopupWnd){ + windowParam.style = ::GetWindowLong(m_hPopupWnd,GWL_STYLE); + } + *pVal = (long)windowParam.style; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Style(long newVal) +{ + windowParam.style = (DWORD)newVal; + if(m_hPopupWnd){ + ::SetWindowLong(m_hPopupWnd,GWL_STYLE,windowParam.style); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_Exstyle(long *pVal) +{ + if(m_hPopupWnd){ + windowParam.exstyle = ::GetWindowLong(m_hPopupWnd,GWL_EXSTYLE); + } + *pVal = (long)windowParam.exstyle; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_Exstyle(long newVal) +{ + windowParam.exstyle = (DWORD)newVal; + if(m_hPopupWnd){ + ::SetWindowLong(m_hPopupWnd,GWL_STYLE,windowParam.exstyle); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_WindowClassName(BSTR *pVal) +{ + WCHAR wmes[MAX_PATH]; + MultiByteToWideChar(GetACP(),0,windowParam.szClassName,-1,wmes,MAX_PATH); + *pVal = SysAllocString(wmes); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::Refresh() +{ + if(m_hPopupWnd){ + ::SetWindowPos(m_hPopupWnd,NULL,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_DRAWFRAME|SWP_FRAMECHANGED|SWP_NOCOPYBITS); + } + return S_OK; +} + +void COverlappedWindow::SetTitle() +{ + if(!m_hPopupWnd){ + return; + } + TCHAR szTitle[MAX_PATH] = {0}; + WideCharToMultiByte(GetACP(),0,m_bstrCaption,-1,szTitle,MAX_PATH,NULL,NULL); + ::SetWindowText(m_hPopupWnd,szTitle); +} + +STDMETHODIMP COverlappedWindow::SetPlacement(VARIANT x, VARIANT y, VARIANT w, VARIANT h, VARIANT *pvarUnk) +{ + // ƒTƒCƒY•ÏX + CComVariant varX,varY,varW,varH; + UINT flag = SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE; + if((x.vt != VT_EMPTY && x.vt != VT_NULL && x.vt != VT_ERROR) && varX.ChangeType(VT_I2,&x) == S_OK){ + windowParam.posX = varX.iVal; + flag &= ~SWP_NOMOVE; + } + if((y.vt != VT_EMPTY && y.vt != VT_NULL && y.vt != VT_ERROR) && varY.ChangeType(VT_I2,&y) == S_OK){ + windowParam.posY = varY.iVal; + flag &= ~SWP_NOMOVE; + } + if((w.vt != VT_EMPTY && w.vt != VT_NULL && w.vt != VT_ERROR) && varW.ChangeType(VT_I2,&w) == S_OK){ + windowParam.width = varW.iVal; + flag &= ~SWP_NOSIZE; + } + if((h.vt != VT_EMPTY && h.vt != VT_NULL && h.vt != VT_ERROR) && varH.ChangeType(VT_I2,&h) == S_OK){ + windowParam.height = varH.iVal; + flag &= ~SWP_NOSIZE; + } + // ƒEƒBƒ“ƒhƒE‚ª•\Ž¦‚³‚ê‚Ä‚¢‚ê‚΂½‚¾‚¿‚É”½‰f + if(m_hPopupWnd){ + ::SetWindowPos(m_hPopupWnd,NULL,windowParam.posX,windowParam.posY,windowParam.width,windowParam.height,flag); + } + if(m_pForm){ + // ƒtƒH[ƒ€‚̃TƒCƒY‚ð•ÏX‚·‚é + m_pForm->SetWindowSize(windowParam.width,windowParam.height,windowParam.GetStyle() & WS_THICKFRAME); + } + CreateThisInterface(pvarUnk); + return S_OK; +} + +void COverlappedWindow::CreateThisInterface(VARIANT* pvarUnk) +{ + // ‚±‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚ð•Ô‚· + ::VariantInit(pvarUnk); + IUnknown* pUnk = NULL; + if(QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + } +} + +STDMETHODIMP COverlappedWindow::SetWindowStyle(VARIANT frametype, VARIANT caption_system, VARIANT maxmin, VARIANT *pvarUnk) +{ + CComVariant varFrametype,varCaptionSystem,varMaxMin; + if(frametype.vt != VT_EMPTY && frametype.vt != VT_ERROR && frametype.vt != VT_NULL + && varFrametype.ChangeType(VT_I2,&frametype) == S_OK){ + windowParam.frametype = varFrametype.iVal; + } + if(caption_system.vt != VT_EMPTY && caption_system.vt != VT_ERROR && caption_system.vt != VT_NULL + && varCaptionSystem.ChangeType(VT_I2,&caption_system) == S_OK){ + windowParam.captionbar = (varCaptionSystem.iVal > 0); + windowParam.systemmenu = (varCaptionSystem.iVal > 1); + } + if(maxmin.vt != VT_EMPTY && maxmin.vt != VT_ERROR && maxmin.vt != VT_NULL + && varMaxMin.ChangeType(VT_I2,&maxmin) == S_OK){ + windowParam.minbox = (varMaxMin.iVal & 0x01); + windowParam.maxbox = (varMaxMin.iVal & 0x02); + } + if(m_hPopupWnd){ + ::SetWindowLong(m_hPopupWnd,GWL_STYLE,windowParam.GetStyle()); + Refresh(); + } + CreateThisInterface(pvarUnk); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::CreateChild(VARIANT *pvarUnk) +{ + SafeCreateWnd(); + ::VariantInit(pvarUnk); + // ŽQÆƒJƒEƒ“ƒg‚ª1‚‚µ‚©‚È‚¢ƒEƒBƒ“ƒhƒE‚Ì”jŠü‚ðs‚¤ + list*>::iterator p = m_lstChild.begin(); + while(p != m_lstChild.end()){ + DWORD refCount = (*p)->m_dwRef; + if((*p)->m_dwRef == 1){ + // ŽQÆƒJƒEƒ“ƒg‚ª1‚µ‚©‚È‚¢ = ‚±‚̃Nƒ‰ƒX‚µ‚©Žg‚Á‚Ä‚¢‚È‚¢ = •s—v + BOOL bVisible = false; + (*p)->get_Visible(&bVisible); + if(!bVisible){ + // •\Ž¦‚³‚ê‚Ä‚¢‚È‚¯‚ê‚ΏÁ‚µ‚Ă悵B + (*p)->Release(); + p = m_lstChild.erase(p); + continue; + } + } + p++; + } + // + CComObject* pChild = NULL; + if(pChild->CreateInstance(&pChild) == S_OK){ + pChild->AddRef(); + pChild->SetParent(m_hPopupWnd); + pChild->put_WaitCursor(m_dWaitCursor); + m_lstChild.push_back(pChild); + // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚ð•Ô‚· + IUnknown* pUnk = NULL; + if(pChild->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pvarUnk->vt = VT_UNKNOWN; + pvarUnk->punkVal = pUnk; + } + } + return S_OK; +} + +void COverlappedWindow::SetParent(HWND hParent) +{ + m_hParentWnd = hParent; +} + +HANDLE COverlappedWindow::GetEventHandle() +{ + return m_hWaitEvent; +} + +void COverlappedWindow::SetWaitParam(int *count, HWND *hWnd, HANDLE *hEvent) +{ + // ‚·‚ׂĂ̎qƒI[ƒo[ƒ‰ƒbƒvƒEƒBƒ“ƒhƒE‚̃Cƒxƒ“ƒgƒnƒ“ƒhƒ‹‚ðŽæ“¾ + if(*count < MAXIMUM_WAIT_OBJECTS){ + // Ž©•ªŽ©g‚ð“o˜^ + hEvent[*count] = m_hWaitEvent; + hWnd [*count] = m_hPopupWnd; + (*count)++; + // ƒ`ƒƒƒCƒ‹ƒh‚ð“o˜^ + list*>::iterator p = m_lstChild.begin(); + while( (p != m_lstChild.end()) && (*count < MAXIMUM_WAIT_OBJECTS) ){ + // ƒ`ƒƒƒCƒ‹ƒh‚ªŠ—L‚·‚éƒ`ƒƒƒCƒ‹ƒh‚ðÄ‹N“I‚ɌĂяo‚· + (*p)->SetWaitParam(count,hWnd,hEvent); + p++; + } + } +} + +DWORD COverlappedWindow::MessageLoop(DWORD sleeptim,int cnt, HWND *hWnd, HANDLE* hEvent) +{ + // ƒƒbƒZ[ƒWƒ‹[ƒv‚ðˆ—‚·‚é + DWORD ret = 0; + DWORD retWait = MsgWaitForMultipleObjects(cnt,hEvent,false,sleeptim,QS_ALLEVENTS|QS_ALLINPUT); + + if(retWait != WAIT_TIMEOUT){ + ret = 0; + if(retWait >= WAIT_OBJECT_0 && retWait < WAIT_OBJECT_0 + cnt){ + // ƒCƒxƒ“ƒg‚Ì”­¶‚µ‚½ƒnƒ“ƒhƒ‹‚ðŽ¯•Ê‚·‚é + ret = retWait - WAIT_OBJECT_0 + 1; + } + // + MSG msg; + while(PeekMessage(&msg, NULL, 0, 0,PM_REMOVE)){ + BOOL bTranslated = false; + HWND hOwner = NULL; + if(msg.hwnd){ + // ƒƒbƒZ[ƒW‚ª‘®‚·‚éƒI[ƒi[ƒEƒBƒ“ƒhƒE‚ð’T‚µo‚· + HWND hParent = msg.hwnd; + while(!hOwner && hParent){ + int i; + for(i=0 ; ivt = VT_I2; + pRetCode->iVal = m_dModalExitCode; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_AutoClose(BOOL *pVal) +{ + *pVal = windowParam.autoclose?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_AutoClose(BOOL newVal) +{ + windowParam.autoclose = newVal; + return S_OK; +} + +void COverlappedWindow::CreateWindowList(list& lstWnd,BOOL bSearchRoot) +{ + HWND* hWnds = NULL; + if(m_hParentWnd && bSearchRoot){ + // ªŒ³‚Å‚È‚¯‚ê‚΁A‚³‚ç‚É–â‚¢‡‚킹‚é + COverlappedWindow* pParent = (COverlappedWindow*)::GetWindowLong(m_hParentWnd,GWL_USERDATA); + if(pParent){ + pParent->CreateWindowList(lstWnd,true); + } + } + else{ + // ‚±‚±‚ªªŒ³‚Å‚ ‚é + list*>::iterator p = m_lstChild.begin(); + DWORD stl = ::GetWindowLong(m_hPopupWnd,GWL_STYLE); + if(stl & WS_VISIBLE){ + // •\Ž¦‚³‚ê‚Ä‚¢‚éƒEƒBƒ“ƒhƒE‚Ì‚Ý‚ð“o˜^‚·‚é + lstWnd.push_back(m_hPopupWnd); + } + while(p != m_lstChild.end()){ + // ‚·‚ׂĂ̎qƒI[ƒo[ƒ‰ƒbƒv‚ð—ñ‹“‚·‚é + HWND hWnd = NULL; + (*p)->get_HWND((long*)&hWnd); + if(hWnd && ::IsWindow(hWnd)){ + (*p)->CreateWindowList(lstWnd,false); + } + p++; + } + } +} + +void COverlappedWindow::MoveNextOverlapped() +{ + // ‡˜ƒŠƒXƒg‚̐¶¬‚ðˆË—Š‚·‚é + listlstWnd; + CreateWindowList(lstWnd,true); + // Œ»ÝˆÊ’u‚ð”cˆ¬‚·‚é + HWND hActiveWnd = ::GetActiveWindow(); + list::iterator p = lstWnd.begin(); + while(p != lstWnd.end()){ + // —ñ‹“ + if(hActiveWnd == *p){ + // ƒAƒNƒeƒBƒuƒEƒBƒ“ƒhƒE‚ð”­Œ©‚µ‚½ + p++; + HWND hNext = lstWnd.front(); + if(p != lstWnd.end()){ + hNext = *p; + } +// ::SetActiveWindow(hNext); + ::SetFocus(hNext); + break; + } + p++; + } +} + +STDMETHODIMP COverlappedWindow::get_Object(VARIANT idx, VARIANT *pVal) +{ + // ƒI[ƒo[ƒ‰ƒbƒvƒIƒuƒWƒFƒNƒg‚ɃoƒCƒ“ƒh‚·‚邱‚Æ‚Ì‚Å‚«‚é˜A‘z”z—ñ + ::VariantInit(pVal); + pVal->vt = VT_UNKNOWN; + m_pObject->QueryInterface(IID_IUnknown,(void**)&(pVal->punkVal)); + return S_OK; +} + + +STDMETHODIMP COverlappedWindow::get_ExitCode(short *pVal) +{ + *pVal = (short)m_dModalExitCode; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_ExitCode(short newVal) +{ + m_dModalExitCode = newVal; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_WaitCursor(short *pVal) +{ + *pVal = (short)m_dWaitCursor; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_WaitCursor(short newVal) +{ + m_dWaitCursor = newVal; + if(m_hPopupWnd){ + ::SendMessage(m_hPopupWnd,WM_SETCURSOR,(WPARAM)m_hPopupWnd,0); + } + // ƒ`ƒƒƒCƒ‹ƒh‚ðŽ‚Á‚Ä‚¢‚éê‡‚́Aƒ`ƒƒƒCƒ‹ƒh‚É‚àƒEƒFƒCƒgƒJ[ƒ\ƒ‹‚ð“K—p‚·‚é + list*>::iterator pWnd = m_lstChild.begin(); + while(pWnd != m_lstChild.end()){ + (*pWnd)->put_WaitCursor(newVal); + pWnd++; + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::LoadIcon(VARIANT text) +{ + CHAR szPath[MAX_PATH]; + CComVariant varText; + if(varText.ChangeType(VT_BSTR,&text) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,szPath,MAX_PATH,NULL,NULL); + if(m_hIcon){ + DestroyIcon(m_hIcon); + m_hIcon = NULL; + } + m_hIcon = (HICON)LoadImage(NULL,szPath,IMAGE_ICON + ,GetSystemMetrics(SM_CXSMICON) + ,GetSystemMetrics(SM_CYSMICON),LR_LOADFROMFILE); + if(m_hIcon && m_hPopupWnd){ + ::SendMessage(m_hPopupWnd, WM_SETICON, false, (LPARAM)m_hIcon); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::CenterWindow() +{ + SafeCreateWnd(); + RECT rct; + if(m_hParentWnd){ + // eƒEƒBƒ“ƒhƒE‚ª‚ ‚ê‚΁A‚»‚Ì’†‰›‚Ɉʒu‚ ‚킹‚·‚é + ::GetWindowRect(m_hParentWnd,&rct); + } + else{ + HWND hwnd = ::GetDesktopWindow(); + if(!hwnd){ + return S_OK; + } + ::GetWindowRect(hwnd,&rct); + } + int x = rct.left + (rct.right - rct.left)/2 - windowParam.width / 2; + int y = rct.top + (rct.bottom - rct.top )/2 - windowParam.height / 2; + WINDOWPLACEMENT pls = { 0 }; + pls.length = sizeof(WINDOWPLACEMENT); + pls.rcNormalPosition.top = y; + pls.rcNormalPosition.left = x; + pls.rcNormalPosition.bottom = y + windowParam.height; + pls.rcNormalPosition.right = x + windowParam.width; + ::SetWindowPlacement(m_hPopupWnd,&pls); + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_ClassObject(VARIANT* pVal) +{ + ::VariantInit(pVal); + if(m_pClassDisp){ + m_pClassDisp->AddRef(); + pVal->pdispVal = m_pClassDisp; + pVal->vt = VT_UNKNOWN; + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_ClassObject(VARIANT newVal) +{ + if(m_pClassDisp){ + m_pClassDisp->Release(); + } + if(newVal.vt == VT_DISPATCH){ + m_pClassDisp = newVal.pdispVal; + m_pClassDisp->AddRef(); + } + else if(!(newVal.vt == VT_EMPTY || newVal.vt == VT_ERROR || newVal.vt == VT_NULL)){ + return DISP_E_TYPEMISMATCH; + } + return S_OK; +} + +void COverlappedWindow::ClassObjectInvoke(LPCWSTR handler) +{ + if(!m_pClassDisp){ + return; + } + DISPID dispid; + if(m_pClassDisp->GetIDsOfNames(IID_NULL,(LPWSTR*)&handler,1,LOCALE_SYSTEM_DEFAULT,&dispid) != S_OK){ + return; + } + DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0}; + m_pClassDisp->Invoke(dispid,IID_NULL,LOCALE_SYSTEM_DEFAULT,DISPATCH_METHOD,&dispparamsNoArgs,NULL,NULL,NULL); +} + +STDMETHODIMP COverlappedWindow::get_ClientWidth(long *pVal) +{ + SafeCreateWnd(); + RECT rct; + ::GetClientRect(m_hPopupWnd,&rct); + *pVal = rct.right; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_ClientHeight(long *pVal) +{ + SafeCreateWnd(); + RECT rct; + ::GetClientRect(m_hPopupWnd,&rct); + *pVal = rct.bottom; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_innerWidth(double *pVal) +{ + SafeCreateWnd(); + RECT rct; + ::GetClientRect(m_hPopupWnd,&rct); + POINT pt = {rct.right,0-rct.bottom}; + HDC hdc = ::GetWindowDC(m_hPopupWnd); + int md = ::GetMapMode(hdc); + ::SetMapMode(hdc,MM_LOMETRIC); + ::DPtoLP(hdc,&pt,1); + ::SetMapMode(hdc,md); + ::ReleaseDC(m_hPopupWnd,hdc); + *pVal = pt.x / 10.; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_innerHeight(double *pVal) +{ + SafeCreateWnd(); + RECT rct; + ::GetClientRect(m_hPopupWnd,&rct); + POINT pt = {rct.right,0-rct.bottom}; + HDC hdc = ::GetWindowDC(m_hPopupWnd); + int md = ::GetMapMode(hdc); + ::SetMapMode(hdc,MM_LOMETRIC); + ::DPtoLP(hdc,&pt,1); + ::SetMapMode(hdc,md); + ::ReleaseDC(m_hPopupWnd,hdc); + *pVal = pt.y / 10.; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_AutoReleaseClassObject(BOOL *pVal) +{ + *pVal = m_bAutoReleaseClassObject?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_AutoReleaseClassObject(BOOL newVal) +{ + m_bAutoReleaseClassObject = newVal; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::get_DefaultAction(BOOL *pVal) +{ + *pVal = m_bDefaultAction?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::put_DefaultAction(BOOL newVal) +{ + m_bDefaultAction = newVal; + return S_OK; +} + +STDMETHODIMP COverlappedWindow::SetClipboardText(BSTR text) +{ + SafeCreateWnd(); + if(::OpenClipboard(m_hPopupWnd)){ + ::EmptyClipboard(); + int len = SysStringByteLen(text); + HGLOBAL hGlobal = GlobalAlloc(GMEM_DDESHARE,len + 1); + LPSTR p = (LPSTR)GlobalLock(hGlobal); + WideCharToMultiByte(GetACP(),0,text,-1,p,len,NULL,NULL); + p[len] = 0; + GlobalUnlock(hGlobal); + ::SetClipboardData(CF_TEXT,hGlobal); + ::CloseClipboard(); + } + return S_OK; +} + +STDMETHODIMP COverlappedWindow::GetClipboardText(VARIANT *pVarText) +{ + SafeCreateWnd(); + ::VariantInit(pVarText); + if(::OpenClipboard(m_hPopupWnd)){ + if(IsClipboardFormatAvailable(CF_TEXT)){ + HGLOBAL hGlobal = ::GetClipboardData(CF_TEXT); + if(hGlobal){ + LPCSTR p = (LPSTR)GlobalLock(hGlobal); + if(p){ + int len = GlobalSize(hGlobal); + _bstr_t wstr(p); + GlobalUnlock(hGlobal); + pVarText->bstrVal = wstr.copy(); + pVarText->vt = VT_BSTR; + } + } + } + ::CloseClipboard(); + } + return S_OK; +} diff --git a/OverlappedWindow.h b/OverlappedWindow.h new file mode 100644 index 0000000..cf1d6eb --- /dev/null +++ b/OverlappedWindow.h @@ -0,0 +1,396 @@ + +// OverlappedWindow.h : Declaration of the COverlappedWindow + +#ifndef __OverlappedWindow_H_ +#define __OverlappedWindow_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include +#include +#include +#include +#include "seraphyscripttools.h" + +#include "SeraphyScriptToolsCP.h" +#include "form.h" +#include "event.h" +#include "control.h" +#include "objectmap.h" + + +#include "draw.h" + + + +/////////////////////////////////////////////////////////////////////// +// ƒhƒƒbƒv‚³‚ꂽƒtƒ@ƒCƒ‹‚Ì•ÛŽ +class dropfiledata +{ +public: + dropfiledata() + { + } + ~dropfiledata(){ + Clear(); + } + void Clear() + { + list::iterator p = m_lstPath.begin(); + while(p != m_lstPath.end()){ + delete (*p); + p = m_lstPath.erase(p); + } + } + void DropFiles(HDROP hDrop) + { + Clear(); + int count = ::DragQueryFile(hDrop,-1,NULL,0); + int i; + for(i=0;ivt = VT_EMPTY; + return; + } + SAFEARRAY* pArray = SafeArrayCreateVector(VT_VARIANT,0,m_lstPath.size()); + VARIANT* pvars; + if(SafeArrayAccessData(pArray,(void**)&pvars) == S_OK){ + int i = 0; + list::iterator p = m_lstPath.begin(); + while(p != m_lstPath.end()){ + WCHAR wbuf[MAX_PATH]; + MultiByteToWideChar(GetACP(),0,*p,-1,wbuf,MAX_PATH); + VariantInit(&pvars[i]); + pvars[i].vt = VT_BSTR; + pvars[i].bstrVal = SysAllocString(wbuf); + p++; + i++; + } + SafeArrayUnaccessData(pArray); + } + VariantInit(pvarPathName); + pvarPathName->vt = VT_ARRAY | VT_VARIANT; + pvarPathName->parray = pArray; + } +protected: + list m_lstPath; +}; + +///////////////////////////////////////////////////////////////////////////// +// COverlappedWindow +class CreateOverlappedWindow +{ +public: + CreateOverlappedWindow() + { + style = 0; + exstyle = 0; + showMode = 0; + noclose = false; + frametype = true; + captionbar = true; + systemmenu = true; + minbox = true; + maxbox = true; + autoclose = true; + automessageloop = true; + ZeroMemory(szClassName,MAX_PATH); + posX = posY = width = height = 0; + } + DWORD GetStyle() + { + DWORD style = WS_CLIPCHILDREN | WS_OVERLAPPED; + if(captionbar){ style |= WS_CAPTION; } + if(frametype ){ style |= WS_THICKFRAME; } + if(systemmenu){ style |= WS_SYSMENU|WS_CAPTION; } + if(minbox ){ style |= WS_MINIMIZEBOX|WS_SYSMENU|WS_CAPTION; } + if(maxbox ){ style |= WS_MAXIMIZEBOX|WS_SYSMENU|WS_CAPTION|WS_THICKFRAME; } + return style; + } + inline void SetWindowPlacement(int x,int y,int w,int h) + { + posX = x; + posY = y; + width = w; + height = h; + } + inline void SetWindowClassName(LPCSTR name) + { + lstrcpy(szClassName,name); + } + CHAR szClassName[MAX_PATH]; + DWORD wndstyle; + DWORD style; + DWORD exstyle; + int posX; + int posY; + int width; + int height; + int showMode; + BOOL noclose; + BOOL doublebuffer; + BOOL frametype; + BOOL captionbar; + BOOL systemmenu; + BOOL minbox; + BOOL maxbox; + BOOL automessageloop; + BOOL autoclose; +}; + +class ATL_NO_VTABLE COverlappedWindow : + public CComObjectRootEx, + public CStockPropImpl, + public CComControl, + public IPersistStreamInitImpl, + public IOleControlImpl, + public IOleObjectImpl, + public IOleInPlaceActiveObjectImpl, + public IViewObjectExImpl, + public IOleInPlaceObjectWindowlessImpl, + public ISupportErrorInfo, + public IConnectionPointContainerImpl, + public IPersistStorageImpl, + public ISpecifyPropertyPagesImpl, + public IQuickActivateImpl, + public IDataObjectImpl, + public IProvideClassInfo2Impl<&CLSID_OverlappedWindow, &DIID__IOverlappedWindowEvents, &LIBID_SERAPHYSCRIPTTOOLSLib>, + public IPropertyNotifySinkCP, + public CComCoClass, + public CProxy_IOverlappedWindowEvents< COverlappedWindow > +{ +public: + COverlappedWindow(); + +DECLARE_GET_CONTROLLING_UNKNOWN() +DECLARE_REGISTRY_RESOURCEID(IDR_OVERLAPPEDWINDOW) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(COverlappedWindow) + COM_INTERFACE_ENTRY(IOverlappedWindow) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(IViewObjectEx) + COM_INTERFACE_ENTRY(IViewObject2) + COM_INTERFACE_ENTRY(IViewObject) + COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless) + COM_INTERFACE_ENTRY(IOleInPlaceObject) + COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless) + COM_INTERFACE_ENTRY(IOleInPlaceActiveObject) + COM_INTERFACE_ENTRY(IOleControl) + COM_INTERFACE_ENTRY(IOleObject) + COM_INTERFACE_ENTRY(IPersistStreamInit) + COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit) + COM_INTERFACE_ENTRY(ISupportErrorInfo) + COM_INTERFACE_ENTRY(IConnectionPointContainer) + COM_INTERFACE_ENTRY(ISpecifyPropertyPages) + COM_INTERFACE_ENTRY(IQuickActivate) + COM_INTERFACE_ENTRY(IPersistStorage) + COM_INTERFACE_ENTRY(IDataObject) + COM_INTERFACE_ENTRY(IProvideClassInfo) + COM_INTERFACE_ENTRY(IProvideClassInfo2) + COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p) + COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer) +END_COM_MAP() + +BEGIN_PROP_MAP(COverlappedWindow) + PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4) + PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4) + PROP_ENTRY("Caption", DISPID_CAPTION, CLSID_NULL) + // Example entries + // PROP_ENTRY("Property Description", dispid, clsid) + // PROP_PAGE(CLSID_StockColorPage) +END_PROP_MAP() + +BEGIN_CONNECTION_POINT_MAP(COverlappedWindow) + CONNECTION_POINT_ENTRY(IID_IPropertyNotifySink) + CONNECTION_POINT_ENTRY(DIID__IOverlappedWindowEvents) +END_CONNECTION_POINT_MAP() + +BEGIN_MSG_MAP(COverlappedWindow) + CHAIN_MSG_MAP(CComControl) + DEFAULT_REFLECTION_HANDLER() +END_MSG_MAP() +// Handler prototypes: +// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); +// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); +// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); + + HRESULT FinalConstruct(); + void FinalRelease(); + + CComPtr m_pUnkMarshaler; + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid) + { + static const IID* arr[] = + { + &IID_IOverlappedWindow, + }; + for (int i=0; i& lstWnd,BOOL bSearchRoot); + STDMETHOD(get_AutoClose)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_AutoClose)(/*[in]*/ BOOL newVal); + STDMETHOD(DoModal)(/*[out,retval]*/VARIANT* retcode); + STDMETHOD(get_AutoMessageLoop)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_AutoMessageLoop)(/*[in]*/ BOOL newVal); + static DWORD MessageLoop(DWORD sleeptim,int count,HWND* hWnd,HANDLE* hEvent); + void SetWaitParam(int* count,HWND* phWnd,HANDLE* phWaitHandle); + HANDLE GetEventHandle(); + void SetParent(HWND hParent); + STDMETHOD(CreateChild)(/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(SetWindowStyle)(/*[in]*/VARIANT frametype,/*[in,optional]*/VARIANT caption_system,/*[in,optional]*/VARIANT maxmin,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(SetPlacement)(/*[in]*/VARIANT x,/*[in]*/VARIANT y,/*[in,optional]*/VARIANT w,/*[in,optional]*/VARIANT h,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(Refresh)(); + STDMETHOD(get_WindowClassName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Exstyle)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_Exstyle)(/*[in]*/ long newVal); + STDMETHOD(get_Style)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_Style)(/*[in]*/ long newVal); + STDMETHOD(Close)(); + STDMETHOD(Draw)(); + STDMETHOD(Open)(/*[in]*/VARIANT caption,/*[out,retval]*/VARIANT* pvarUnk); + STDMETHOD(DoEvent)(/*[out,retval]*/VARIANT* varResult); + STDMETHOD(get_IsEventEmpty)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(SetTimer)(/*[in]*/VARIANT tim,/*[out,retval]*/BOOL* pVal); + + HRESULT OnDraw(ATL_DRAWINFO& di) + { + RECT& rc = *(RECT*)di.prcBounds; + Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom); + + SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE); + LPCTSTR pszText = _T("SeraphyScriptTools.OverlappedWindow"); + TextOut(di.hdcDraw, + (rc.left + rc.right) / 2, + (rc.top + rc.bottom) / 2, + pszText, + lstrlen(pszText)); + + return S_OK; + } + + STDMETHOD(get_Caption)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_Caption)(/*[in]*/ BSTR newVal); + STDMETHOD(get_backColor)(/*[out, retval]*/ long *pVal); + STDMETHOD(put_backColor)(/*[in]*/ long newVal); + STDMETHOD(get_Form)(/*[out, retval]*/ VARIANT *pVal); + STDMETHOD(get_Quit)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Quit)(/*[in]*/ BOOL newVal); + STDMETHOD(get_DropFiles)(/*[out, retval]*/ VARIANT *pVal); + STDMETHOD(get_Event)(/*[out, retval]*/ VARIANT *pVal); + STDMETHOD(get_Canvas)(/*[out, retval]*/ VARIANT *pVal); + STDMETHOD(get_CreateNoCloseWindow)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_CreateNoCloseWindow)(/*[in]*/ BOOL newVal); + STDMETHOD(EnableMenu)(/*[in]*/VARIANT cmd,/*[in]*/VARIANT mode); + STDMETHOD(CheckMenu)(/*[in]*/VARIANT cmd,/*[in]*/VARIANT mode); + STDMETHOD(GetSysColor)(/*[in]*/VARIANT typ,/*[out,retval]*/VARIANT* col); + STDMETHOD(get_HWND)(/*[out, retval]*/ long *pVal); + STDMETHOD(TrackPopupMenu)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT cmd,/*[out,retval]*/VARIANT* pRet); + STDMETHOD(SetMenu)(/*[in]*/VARIANT fmt); + STDMETHOD(WaitEvent)(/*[in,optional]*/VARIANT varTim,/*[out,retval]*/BOOL* pRet); + STDMETHOD(get_Visible)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Visible)(/*[in]*/ BOOL newVal); + STDMETHOD(get_Zoomed)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Zoomed)(/*[in]*/ BOOL newVal); + STDMETHOD(get_Iconic)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Iconic)(/*[in]*/ BOOL newVal); + STDMETHOD(get_Enable)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Enable)(/*[in]*/ BOOL newVal); + STDMETHOD(SetFocus)(); + STDMETHOD(SetForegroundWindow)(); + STDMETHOD(get_AcceptFiles)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_AcceptFiles)(/*[in]*/ BOOL newVal); + STDMETHOD(get_Height)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_Height)(/*[in]*/ short newVal); + STDMETHOD(get_Width)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_Width)(/*[in]*/ short newVal); + STDMETHOD(get_PosY)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_PosY)(/*[in]*/ short newVal); + STDMETHOD(get_PosX)(/*[out, retval]*/ short *pVal); + STDMETHOD(put_PosX)(/*[in]*/ short newVal); + STDMETHOD(get_TopMost)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_TopMost)(/*[in]*/ BOOL newVal); + STDMETHOD(get_DoubleBuffer)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_DoubleBuffer)(/*[in]*/ BOOL newVal); + CComBSTR m_bstrCaption; +protected: + HWND SafeCreateWnd(); + CreateOverlappedWindow windowParam; + CComObject* m_pCanvas; + CComObject* m_pForm; + CComObject* m_pEvent; + CComObject* m_pObject; + list*> m_lstEvent; + list*> m_lstChild; + vector m_vectorObject; + dropfiledata m_dropfiles; + CRITICAL_SECTION m_objEventDataProtection; + BOOL m_bAutoReleaseClassObject; + BOOL m_bDefaultAction; +protected: + static LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); + void AddEvent(int message,WPARAM wParam,LPARAM lParam); + void AddEventSingle(int message,WPARAM wParam,LPARAM lParam); + void CreateThisInterface(VARIANT* pvarUnk); + void SetTitle(); +protected: + IDispatch* m_pClassDisp; + int m_dWaitCursor; + BOOL m_bQuit; + int m_dModalExitCode; + DWORD m_dwBackColor; + int m_dCaptureMode; + HWND m_hLastFocusControl; + HBRUSH m_hBkBrush; + HMENU m_hMenu; + HANDLE m_hWaitEvent; + HWND m_hPopupWnd; + HWND m_hParentWnd; + HICON m_hIcon; + map m_cMenuMap; +}; + +#endif //__OverlappedWindow_H_ diff --git a/OverlappedWindow.rgs b/OverlappedWindow.rgs new file mode 100644 index 0000000..f1574dd --- /dev/null +++ b/OverlappedWindow.rgs @@ -0,0 +1,35 @@ +HKCR +{ + SeraphyScriptTools.OverlappedWindow.1 = s 'SeraphyScriptTools.OverlappedWindow Class' + { + CLSID = s '{B2946768-9331-43B8-BCD8-54FB6086A721}' + 'Insertable' + } + SeraphyScriptTools.OverlappedWindow = s 'SeraphyScriptTools.OverlappedWindow Class' + { + CLSID = s '{B2946768-9331-43B8-BCD8-54FB6086A721}' + CurVer = s 'SeraphyScriptTools.OverlappedWindow.1' + } + NoRemove CLSID + { + ForceRemove {B2946768-9331-43B8-BCD8-54FB6086A721} = s 'SeraphyScriptTools.OverlappedWindow Class' + { + ProgID = s 'SeraphyScriptTools.OverlappedWindow.1' + VersionIndependentProgID = s 'SeraphyScriptTools.OverlappedWindow' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + ForceRemove 'Control' + ForceRemove 'Insertable' + ForceRemove 'ToolboxBitmap32' = s '%MODULE%, 103' + 'MiscStatus' = s '0' + { + '1' = s '132497' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + 'Version' = s '1.0' + } + } +} diff --git a/ParseName.rgs b/ParseName.rgs new file mode 100644 index 0000000..2913ca7 --- /dev/null +++ b/ParseName.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.ParseName.1 = s 'SeraphyScriptTools.ParseName Class' + { + CLSID = s '{43AB6371-EFA9-4C25-897A-6D6249872022}' + } + SeraphyScriptTools.ParseName = s 'SeraphyScriptTools.ParseName Class' + { + CLSID = s '{43AB6371-EFA9-4C25-897A-6D6249872022}' + CurVer = s 'SeraphyScriptTools.ParseName.1' + } + NoRemove CLSID + { + ForceRemove {43AB6371-EFA9-4C25-897A-6D6249872022} = s 'SeraphyScriptTools.ParseName Class' + { + ProgID = s 'SeraphyScriptTools.ParseName.1' + VersionIndependentProgID = s 'SeraphyScriptTools.ParseName' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/PrivateProfile.cpp b/PrivateProfile.cpp new file mode 100644 index 0000000..3013074 --- /dev/null +++ b/PrivateProfile.cpp @@ -0,0 +1,59 @@ +// PrivateProfile.cpp : CPrivateProfile ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "PrivateProfile.h" +#include "profilesection.h" +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CPrivateProfile + +STDMETHODIMP CPrivateProfile::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_IPrivateProfile + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CPrivateProfile::get_ProfilePath(BSTR *pVal) +{ + *pVal = m_bstr_profilepath.copy(); + return S_OK; +} + +STDMETHODIMP CPrivateProfile::put_ProfilePath(BSTR newVal) +{ + m_bstr_profilepath = newVal; + return S_OK; +} + +STDMETHODIMP CPrivateProfile::OpenSection(VARIANT text,VARIANT* pVal) +{ + ::VariantInit(pVal); + CComVariant varText; + if(varText.ChangeType(VT_BSTR,&text) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + if(m_bstr_profilepath.length() <= 0){ + ErrorInfo(IDS_ERR_PROFILEPATH); + return DISP_E_EXCEPTION; + } + CComObject* pSection = NULL; + pSection->CreateInstance(&pSection); + ATLASSERT(pSection); + WideCharToMultiByte(GetACP(),0,m_bstr_profilepath,-1,pSection->m_szProfilePath,MAX_PATH,NULL,NULL); + WideCharToMultiByte(GetACP(),0,varText.bstrVal ,-1,pSection->m_szSectionName,MAX_PATH,NULL,NULL); + IUnknown* pUnk = NULL; + pSection->QueryInterface(IID_IUnknown,(void**)&pUnk); + ATLASSERT(pUnk); + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + return S_OK; +} diff --git a/PrivateProfile.h b/PrivateProfile.h new file mode 100644 index 0000000..1d3aba1 --- /dev/null +++ b/PrivateProfile.h @@ -0,0 +1,43 @@ +// PrivateProfile.h : CPrivateProfile ‚̐錾 + +#ifndef __PRIVATEPROFILE_H_ +#define __PRIVATEPROFILE_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ + +///////////////////////////////////////////////////////////////////////////// +// CPrivateProfile +class ATL_NO_VTABLE CPrivateProfile : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CPrivateProfile() + { + } + +DECLARE_REGISTRY_RESOURCEID(IDR_PRIVATEPROFILE) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CPrivateProfile) + COM_INTERFACE_ENTRY(IPrivateProfile) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// IPrivateProfile +public: + STDMETHOD(OpenSection)(/*[in]*/VARIANT text,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(get_ProfilePath)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_ProfilePath)(/*[in]*/ BSTR newVal); +protected: + _bstr_t m_bstr_profilepath; +}; + +#endif //__PRIVATEPROFILE_H_ diff --git a/PrivateProfile.rgs b/PrivateProfile.rgs new file mode 100644 index 0000000..8df48a0 --- /dev/null +++ b/PrivateProfile.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.PrivateProfile.1 = s 'SeraphyScriptTools.PrivateProfile Class' + { + CLSID = s '{A1DADEC9-00B3-4D99-8D4A-17779E94A8AA}' + } + SeraphyScriptTools.PrivateProfile = s 'SeraphyScriptTools.PrivateProfile Class' + { + CLSID = s '{A1DADEC9-00B3-4D99-8D4A-17779E94A8AA}' + CurVer = s 'SeraphyScriptTools.PrivateProfile.1' + } + NoRemove CLSID + { + ForceRemove {A1DADEC9-00B3-4D99-8D4A-17779E94A8AA} = s 'SeraphyScriptTools.PrivateProfile Class' + { + ProgID = s 'SeraphyScriptTools.PrivateProfile.1' + VersionIndependentProgID = s 'SeraphyScriptTools.PrivateProfile' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/ProfileSection.cpp b/ProfileSection.cpp new file mode 100644 index 0000000..13f405c --- /dev/null +++ b/ProfileSection.cpp @@ -0,0 +1,129 @@ +// ProfileSection.cpp : CProfileSection ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "ProfileSection.h" + +///////////////////////////////////////////////////////////////////////////// +// CProfileSection + +STDMETHODIMP CProfileSection::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ISeraphyScriptTools_ProfileSection + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CProfileSection::get_Value(VARIANT idx, VARIANT *pVal) +{ + ::VariantInit(pVal); + CComVariant varIdx; + CHAR szKeyname[MAX_PATH] = { 0 }; + const int siz = 1024 * 8; // 8KBytes + LPSTR szReturn = new CHAR[siz]; + if(varIdx.ChangeType(VT_BSTR,&idx) == S_OK){ + WideCharToMultiByte(GetACP(),0,varIdx.bstrVal,-1,szKeyname,MAX_PATH,NULL,NULL); + } + if(GetPrivateProfileString(m_szSectionName,szKeyname,"",szReturn,siz,m_szProfilePath)){ + CComVariant ret((LPCSTR)szReturn); + ret.Detach(pVal); + } + delete[]szReturn; + return S_OK; +} + +STDMETHODIMP CProfileSection::put_Value(VARIANT idx, VARIANT newVal) +{ + // ƒfƒBƒtƒHƒ‹ƒg‚Ì’l‚‚«Žæ“¾ + CComVariant varIdx,varNew; + CHAR szKeyname[MAX_PATH] = { 0 }; + const int siz = 1024 * 8; // 8KBytes + LPSTR szWrite = new CHAR[siz+1]; + if(varIdx.ChangeType(VT_BSTR,&idx) == S_OK){ + WideCharToMultiByte(GetACP(),0,varIdx.bstrVal,-1,szKeyname,MAX_PATH,NULL,NULL); + } + if(varNew.ChangeType(VT_BSTR,&newVal) == S_OK){ + int cnt = WideCharToMultiByte(GetACP(),0,varNew.bstrVal,-1,szWrite,siz,NULL,NULL); + szWrite[cnt] = 0; + } + WritePrivateProfileString(m_szSectionName,szKeyname,szWrite,m_szProfilePath); + delete[]szWrite; + return S_OK; +} + +STDMETHODIMP CProfileSection::GetValue(VARIANT idx, VARIANT def,VARIANT* pVal) +{ + // ƒfƒBƒtƒHƒ‹ƒg‚Ì’l‚‚«Žæ“¾ + ::VariantInit(pVal); + CComVariant varIdx,varDef; + CHAR szKeyname[MAX_PATH] = { 0 }; + CHAR szDefault[MAX_PATH] = { 0 }; + const int siz = 1024 * 8; // 8KBytes + LPSTR szReturn = new CHAR[siz]; + if(varIdx.ChangeType(VT_BSTR,&idx) == S_OK){ + WideCharToMultiByte(GetACP(),0,varIdx.bstrVal,-1,szKeyname,MAX_PATH,NULL,NULL); + } + if(varDef.ChangeType(VT_BSTR,&def) == S_OK){ + WideCharToMultiByte(GetACP(),0,varDef.bstrVal,-1,szDefault,MAX_PATH,NULL,NULL); + } + if(GetPrivateProfileString(m_szSectionName,szKeyname,szDefault,szReturn,siz,m_szProfilePath)){ + CComVariant ret((LPCSTR)szReturn); + ret.Detach(pVal); + } + delete[]szReturn; + return S_OK; +} + +STDMETHODIMP CProfileSection::GetKeyNames(VARIANT *pVal) +{ + // ƒL[–¼‚Ì—ñ‹“‚ðs‚¤ + DWORD siz = 4096; + DWORD oldsiz = 0; + DWORD retsiz = 0; + LPSTR pBuf = new CHAR[siz]; + while( (retsiz = GetPrivateProfileSection(m_szSectionName,pBuf,siz,m_szProfilePath)) && + (retsiz == (siz - 2)) && ( oldsiz != retsiz ) ){ + oldsiz = siz; + siz *= 2; + delete []pBuf; + pBuf = new CHAR[siz]; + } + // ƒJƒEƒ“ƒg‚·‚é + LPSTR p = pBuf; + long count = 0; + while(*p){ + count++; + while(*p++); + } + // ˆêŽŸ”z—ñ‚̐¶¬ + SAFEARRAY* pArray = SafeArrayCreateVector(VT_VARIANT,0,count); + long idx = 0; + p = pBuf; + while(*p){ + CComVariant tmp; + LPCSTR pb = p; + while(*p){ + if(*p == '='){ + *p = 0; + } + p++; + } + p++; + tmp = (LPCSTR)pb; + SafeArrayPutElement(pArray,&idx,&tmp); + tmp.Clear(); + idx++; + } + delete[]pBuf; + // –ß‚è’l + ::VariantInit(pVal); + pVal->vt = VT_VARIANT | VT_ARRAY; + pVal->parray = pArray; + return S_OK; +} diff --git a/ProfileSection.h b/ProfileSection.h new file mode 100644 index 0000000..b1093ef --- /dev/null +++ b/ProfileSection.h @@ -0,0 +1,44 @@ +// ProfileSection.h : CProfileSection ‚̐錾 + +#ifndef __PROFILESECTION_H_ +#define __PROFILESECTION_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ + +///////////////////////////////////////////////////////////////////////////// +// CProfileSection +class ATL_NO_VTABLE CProfileSection : + public CComObjectRootEx, +// public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CProfileSection() + { + } + +DECLARE_REGISTRY_RESOURCEID(IDR_PROFILESECTION) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CProfileSection) + COM_INTERFACE_ENTRY(ISeraphyScriptTools_ProfileSection) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ISeraphyScriptTools_ProfileSection +public: + STDMETHOD(GetKeyNames)(/*[out]*/VARIANT* pVal); + STDMETHOD(GetValue)(/*[in]*/VARIANT idx,/*[in,optional]*/VARIANT def,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(get_Value)(/*[in]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal); + STDMETHOD(put_Value)(/*[in]*/VARIANT idx, /*[in]*/ VARIANT newVal); + CHAR m_szProfilePath[MAX_PATH]; + CHAR m_szSectionName[MAX_PATH]; +}; + +#endif //__PROFILESECTION_H_ diff --git a/ProfileSection.rgs b/ProfileSection.rgs new file mode 100644 index 0000000..87a0973 --- /dev/null +++ b/ProfileSection.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.ProfileSection.1 = s 'SeraphyScriptTools.ProfileSection Class' + { + CLSID = s '{E6DE44A6-32C5-4818-99FB-45BB5E6DB1FF}' + } + SeraphyScriptTools.ProfileSection = s 'SeraphyScriptTools.ProfileSection Class' + { + CLSID = s '{E6DE44A6-32C5-4818-99FB-45BB5E6DB1FF}' + CurVer = s 'SeraphyScriptTools.ProfileSection.1' + } + NoRemove CLSID + { + ForceRemove {E6DE44A6-32C5-4818-99FB-45BB5E6DB1FF} = s 'SeraphyScriptTools.ProfileSection Class' + { + ProgID = s 'SeraphyScriptTools.ProfileSection.1' + VersionIndependentProgID = s 'SeraphyScriptTools.ProfileSection' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/SeraphyScriptTools.cpp b/SeraphyScriptTools.cpp new file mode 100644 index 0000000..4277a44 --- /dev/null +++ b/SeraphyScriptTools.cpp @@ -0,0 +1,109 @@ +// SeraphyScriptTools.cpp : DLL ƒGƒNƒXƒ|[ƒg‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ + + +// ƒƒ‚: Proxy/Stub î•ñ +// •ÊX‚Ì proxy/stub DLL ‚ðƒrƒ‹ƒh‚·‚邽‚߂ɂ́AƒvƒƒWƒFƒNƒg‚̃fƒBƒŒƒNƒgƒŠ‚Å +// nmake -f SeraphyScriptToolsps.mak ‚ðŽÀs‚µ‚Ä‚­‚¾‚³‚¢B + +#include "stdafx.h" +#include "resource.h" +#include +#include "SeraphyScriptTools.h" + +#include "SeraphyScriptTools_i.c" +#include "CommDialog.h" +#include "OverlappedWindow.h" +#include "Control.h" +#include "Draw.h" +#include "Layer.h" +#include "Form.h" +#include "instance.h" +#include "objectmap.h" +#include "shell.h" +#include "objectvector.h" +#include "profilesection.h" +#include "privateprofile.h" + +CComModule _Module; + +BEGIN_OBJECT_MAP(ObjectMap) +OBJECT_ENTRY(CLSID_SeraphyScriptTools_Instance, CInstance) +OBJECT_ENTRY(CLSID_CommDialog, CCommDialog) +OBJECT_ENTRY(CLSID_Canvas, CCanvas) +OBJECT_ENTRY(CLSID_OverlappedWindow, COverlappedWindow) +OBJECT_ENTRY(CLSID_ObjectMap, CObjectMap) +OBJECT_ENTRY(CLSID_SeraphyScriptTools_Shell, CShell) +OBJECT_ENTRY(CLSID_ObjectVector, CObjectVector) +//OBJECT_ENTRY(CLSID_Control, CControl) +//OBJECT_ENTRY(CLSID_Layer, CLayer) +//OBJECT_ENTRY(CLSID_Form, CForm) +//OBJECT_ENTRY(CLSID_Event, CEvent) +//OBJECT_ENTRY(CLSID_EnumSelect, CEnumSelect) +//OBJECT_ENTRY(CLSID_TreeItem, CTreeItem) +//OBJECT_ENTRY(CLSID_ShellExecObj, CShellExecObj) +//OBJECT_ENTRY(CLSID_ProfileSection, CProfileSection) +OBJECT_ENTRY(CLSID_ParseName, CParseName) +OBJECT_ENTRY(CLSID_PrivateProfile, CPrivateProfile) +END_OBJECT_MAP() + +///////////////////////////////////////////////////////////////////////////// +// DLL ƒGƒ“ƒgƒŠ ƒ|ƒCƒ“ƒg + +extern "C" +BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) +{ + if (dwReason == DLL_PROCESS_ATTACH) + { + // ƒRƒ‚ƒ“ƒRƒ“ƒgƒ[ƒ‹‚̃Nƒ‰ƒX–¼‚ð“o˜^‚·‚é + InitCommonControls(); + // + _Module.Init(ObjectMap, hInstance, &LIBID_SERAPHYSCRIPTTOOLSLib); + DisableThreadLibraryCalls(hInstance); + } + else if (dwReason == DLL_PROCESS_DETACH) + _Module.Term(); + return TRUE; // ok +} + +///////////////////////////////////////////////////////////////////////////// +// DLL ‚ª OLE ‚É‚æ‚Á‚ăAƒ“ƒ[ƒh‰Â”\‚©‚Ç‚¤‚©‚𒲂ׂ邽‚ß‚ÉŽg—p‚³‚ê‚Ü‚· + +STDAPI DllCanUnloadNow(void) +{ + return (_Module.GetLockCount()==0) ? S_OK : S_FALSE; +} + +///////////////////////////////////////////////////////////////////////////// +// —v‹‚³‚ꂽŒ^‚̃IƒuƒWƒFƒNƒg‚ðì¬‚·‚邽‚߂ɃNƒ‰ƒX ƒtƒ@ƒNƒgƒŠ‚ð•Ô‚µ‚Ü‚· + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) +{ + return _Module.GetClassObject(rclsid, riid, ppv); +} + +///////////////////////////////////////////////////////////////////////////// +// DllRegisterServer - ƒVƒXƒeƒ€ ƒŒƒWƒXƒgƒŠ‚ÖƒGƒ“ƒgƒŠ‚ð’ljÁ‚µ‚Ü‚· + +STDAPI DllRegisterServer(void) +{ + // ƒIƒuƒWƒFƒNƒgAƒ^ƒCƒvƒ‰ƒCƒuƒ‰ƒŠ‚¨‚æ‚у^ƒCƒvƒ‰ƒCƒuƒ‰ƒŠ“à‚Ì‘S‚ẴCƒ“ƒ^[ƒtƒFƒCƒX‚ð“o˜^‚µ‚Ü‚· + return _Module.RegisterServer(TRUE); +} + +///////////////////////////////////////////////////////////////////////////// +// DllUnregisterServer - ƒVƒXƒeƒ€ ƒŒƒWƒXƒgƒŠ‚©‚çƒGƒ“ƒgƒŠ‚ðíœ‚µ‚Ü‚· + +STDAPI DllUnregisterServer(void) +{ + return _Module.UnregisterServer(TRUE); +} + + +#include "Event.h" +#include "Instance.h" +#include "TreeItem.h" +#include "ObjectMap.h" +#include "Shell.h" +#include "ObjectVector.h" +#include "ProfileSection.h" +#include "PrivateProfile.h" diff --git a/SeraphyScriptTools.def b/SeraphyScriptTools.def new file mode 100644 index 0000000..d9bd5d4 --- /dev/null +++ b/SeraphyScriptTools.def @@ -0,0 +1,9 @@ +; SeraphyScriptTools.def : ƒ‚ƒWƒ…[ƒ‹ ƒpƒ‰ƒ[ƒ^‚ðéŒ¾‚µ‚Ü‚·B + +LIBRARY "SeraphyScriptTools.DLL" + +EXPORTS + DllCanUnloadNow PRIVATE + DllGetClassObject PRIVATE + DllRegisterServer PRIVATE + DllUnregisterServer PRIVATE diff --git a/SeraphyScriptTools.h b/SeraphyScriptTools.h new file mode 100644 index 0000000..2b96bce --- /dev/null +++ b/SeraphyScriptTools.h @@ -0,0 +1,7182 @@ + + +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + + /* File created by MIDL compiler version 8.00.0603 */ +/* at Sun Jul 19 17:53:12 2015 + */ +/* Compiler settings for SeraphyScriptTools.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ +/* @@MIDL_FILE_HEADING( ) */ + +#pragma warning( disable: 4049 ) /* more than 64k source lines */ + + +/* verify that the version is high enough to compile this file*/ +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif + +#include "rpc.h" +#include "rpcndr.h" + +#ifndef __RPCNDR_H_VERSION__ +#error this stub requires an updated version of +#endif // __RPCNDR_H_VERSION__ + +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __SeraphyScriptTools_h__ +#define __SeraphyScriptTools_h__ + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +/* Forward Declarations */ + +#ifndef __ICommDialog_FWD_DEFINED__ +#define __ICommDialog_FWD_DEFINED__ +typedef interface ICommDialog ICommDialog; + +#endif /* __ICommDialog_FWD_DEFINED__ */ + + +#ifndef ___ICommDialogEvents_FWD_DEFINED__ +#define ___ICommDialogEvents_FWD_DEFINED__ +typedef interface _ICommDialogEvents _ICommDialogEvents; + +#endif /* ___ICommDialogEvents_FWD_DEFINED__ */ + + +#ifndef __IOverlappedWindow_FWD_DEFINED__ +#define __IOverlappedWindow_FWD_DEFINED__ +typedef interface IOverlappedWindow IOverlappedWindow; + +#endif /* __IOverlappedWindow_FWD_DEFINED__ */ + + +#ifndef __CommDialog_FWD_DEFINED__ +#define __CommDialog_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class CommDialog CommDialog; +#else +typedef struct CommDialog CommDialog; +#endif /* __cplusplus */ + +#endif /* __CommDialog_FWD_DEFINED__ */ + + +#ifndef ___IOverlappedWindowEvents_FWD_DEFINED__ +#define ___IOverlappedWindowEvents_FWD_DEFINED__ +typedef interface _IOverlappedWindowEvents _IOverlappedWindowEvents; + +#endif /* ___IOverlappedWindowEvents_FWD_DEFINED__ */ + + +#ifndef __IControl_FWD_DEFINED__ +#define __IControl_FWD_DEFINED__ +typedef interface IControl IControl; + +#endif /* __IControl_FWD_DEFINED__ */ + + +#ifndef __OverlappedWindow_FWD_DEFINED__ +#define __OverlappedWindow_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class OverlappedWindow OverlappedWindow; +#else +typedef struct OverlappedWindow OverlappedWindow; +#endif /* __cplusplus */ + +#endif /* __OverlappedWindow_FWD_DEFINED__ */ + + +#ifndef ___IControlEvents_FWD_DEFINED__ +#define ___IControlEvents_FWD_DEFINED__ +typedef interface _IControlEvents _IControlEvents; + +#endif /* ___IControlEvents_FWD_DEFINED__ */ + + +#ifndef __ICanvas_FWD_DEFINED__ +#define __ICanvas_FWD_DEFINED__ +typedef interface ICanvas ICanvas; + +#endif /* __ICanvas_FWD_DEFINED__ */ + + +#ifndef __Control_FWD_DEFINED__ +#define __Control_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class Control Control; +#else +typedef struct Control Control; +#endif /* __cplusplus */ + +#endif /* __Control_FWD_DEFINED__ */ + + +#ifndef ___ICanvasEvents_FWD_DEFINED__ +#define ___ICanvasEvents_FWD_DEFINED__ +typedef interface _ICanvasEvents _ICanvasEvents; + +#endif /* ___ICanvasEvents_FWD_DEFINED__ */ + + +#ifndef __ILayer_FWD_DEFINED__ +#define __ILayer_FWD_DEFINED__ +typedef interface ILayer ILayer; + +#endif /* __ILayer_FWD_DEFINED__ */ + + +#ifndef __Canvas_FWD_DEFINED__ +#define __Canvas_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class Canvas Canvas; +#else +typedef struct Canvas Canvas; +#endif /* __cplusplus */ + +#endif /* __Canvas_FWD_DEFINED__ */ + + +#ifndef ___ILayerEvents_FWD_DEFINED__ +#define ___ILayerEvents_FWD_DEFINED__ +typedef interface _ILayerEvents _ILayerEvents; + +#endif /* ___ILayerEvents_FWD_DEFINED__ */ + + +#ifndef __IForm_FWD_DEFINED__ +#define __IForm_FWD_DEFINED__ +typedef interface IForm IForm; + +#endif /* __IForm_FWD_DEFINED__ */ + + +#ifndef __Layer_FWD_DEFINED__ +#define __Layer_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class Layer Layer; +#else +typedef struct Layer Layer; +#endif /* __cplusplus */ + +#endif /* __Layer_FWD_DEFINED__ */ + + +#ifndef ___IFormEvents_FWD_DEFINED__ +#define ___IFormEvents_FWD_DEFINED__ +typedef interface _IFormEvents _IFormEvents; + +#endif /* ___IFormEvents_FWD_DEFINED__ */ + + +#ifndef __IEvent_FWD_DEFINED__ +#define __IEvent_FWD_DEFINED__ +typedef interface IEvent IEvent; + +#endif /* __IEvent_FWD_DEFINED__ */ + + +#ifndef __Form_FWD_DEFINED__ +#define __Form_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class Form Form; +#else +typedef struct Form Form; +#endif /* __cplusplus */ + +#endif /* __Form_FWD_DEFINED__ */ + + +#ifndef ___IEventEvents_FWD_DEFINED__ +#define ___IEventEvents_FWD_DEFINED__ +typedef interface _IEventEvents _IEventEvents; + +#endif /* ___IEventEvents_FWD_DEFINED__ */ + + +#ifndef __ISeraphyScriptTools_Instance_FWD_DEFINED__ +#define __ISeraphyScriptTools_Instance_FWD_DEFINED__ +typedef interface ISeraphyScriptTools_Instance ISeraphyScriptTools_Instance; + +#endif /* __ISeraphyScriptTools_Instance_FWD_DEFINED__ */ + + +#ifndef __Event_FWD_DEFINED__ +#define __Event_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class Event Event; +#else +typedef struct Event Event; +#endif /* __cplusplus */ + +#endif /* __Event_FWD_DEFINED__ */ + + +#ifndef ___ISeraphyScriptTools_InstanceEvents_FWD_DEFINED__ +#define ___ISeraphyScriptTools_InstanceEvents_FWD_DEFINED__ +typedef interface _ISeraphyScriptTools_InstanceEvents _ISeraphyScriptTools_InstanceEvents; + +#endif /* ___ISeraphyScriptTools_InstanceEvents_FWD_DEFINED__ */ + + +#ifndef __ITreeItem_FWD_DEFINED__ +#define __ITreeItem_FWD_DEFINED__ +typedef interface ITreeItem ITreeItem; + +#endif /* __ITreeItem_FWD_DEFINED__ */ + + +#ifndef __IObjectMap_FWD_DEFINED__ +#define __IObjectMap_FWD_DEFINED__ +typedef interface IObjectMap IObjectMap; + +#endif /* __IObjectMap_FWD_DEFINED__ */ + + +#ifndef __ISeraphyScriptTools_Shell_FWD_DEFINED__ +#define __ISeraphyScriptTools_Shell_FWD_DEFINED__ +typedef interface ISeraphyScriptTools_Shell ISeraphyScriptTools_Shell; + +#endif /* __ISeraphyScriptTools_Shell_FWD_DEFINED__ */ + + +#ifndef __IShellExecObj_FWD_DEFINED__ +#define __IShellExecObj_FWD_DEFINED__ +typedef interface IShellExecObj IShellExecObj; + +#endif /* __IShellExecObj_FWD_DEFINED__ */ + + +#ifndef __IObjectVector_FWD_DEFINED__ +#define __IObjectVector_FWD_DEFINED__ +typedef interface IObjectVector IObjectVector; + +#endif /* __IObjectVector_FWD_DEFINED__ */ + + +#ifndef __ISeraphyScriptTools_ProfileSection_FWD_DEFINED__ +#define __ISeraphyScriptTools_ProfileSection_FWD_DEFINED__ +typedef interface ISeraphyScriptTools_ProfileSection ISeraphyScriptTools_ProfileSection; + +#endif /* __ISeraphyScriptTools_ProfileSection_FWD_DEFINED__ */ + + +#ifndef __ISeraphyScriptTool_ParseName_FWD_DEFINED__ +#define __ISeraphyScriptTool_ParseName_FWD_DEFINED__ +typedef interface ISeraphyScriptTool_ParseName ISeraphyScriptTool_ParseName; + +#endif /* __ISeraphyScriptTool_ParseName_FWD_DEFINED__ */ + + +#ifndef __IPrivateProfile_FWD_DEFINED__ +#define __IPrivateProfile_FWD_DEFINED__ +typedef interface IPrivateProfile IPrivateProfile; + +#endif /* __IPrivateProfile_FWD_DEFINED__ */ + + +#ifndef __SeraphyScriptTools_Instance_FWD_DEFINED__ +#define __SeraphyScriptTools_Instance_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class SeraphyScriptTools_Instance SeraphyScriptTools_Instance; +#else +typedef struct SeraphyScriptTools_Instance SeraphyScriptTools_Instance; +#endif /* __cplusplus */ + +#endif /* __SeraphyScriptTools_Instance_FWD_DEFINED__ */ + + +#ifndef __TreeItem_FWD_DEFINED__ +#define __TreeItem_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class TreeItem TreeItem; +#else +typedef struct TreeItem TreeItem; +#endif /* __cplusplus */ + +#endif /* __TreeItem_FWD_DEFINED__ */ + + +#ifndef __ObjectMap_FWD_DEFINED__ +#define __ObjectMap_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class ObjectMap ObjectMap; +#else +typedef struct ObjectMap ObjectMap; +#endif /* __cplusplus */ + +#endif /* __ObjectMap_FWD_DEFINED__ */ + + +#ifndef __SeraphyScriptTools_Shell_FWD_DEFINED__ +#define __SeraphyScriptTools_Shell_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class SeraphyScriptTools_Shell SeraphyScriptTools_Shell; +#else +typedef struct SeraphyScriptTools_Shell SeraphyScriptTools_Shell; +#endif /* __cplusplus */ + +#endif /* __SeraphyScriptTools_Shell_FWD_DEFINED__ */ + + +#ifndef __ShellExecObj_FWD_DEFINED__ +#define __ShellExecObj_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class ShellExecObj ShellExecObj; +#else +typedef struct ShellExecObj ShellExecObj; +#endif /* __cplusplus */ + +#endif /* __ShellExecObj_FWD_DEFINED__ */ + + +#ifndef __ObjectVector_FWD_DEFINED__ +#define __ObjectVector_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class ObjectVector ObjectVector; +#else +typedef struct ObjectVector ObjectVector; +#endif /* __cplusplus */ + +#endif /* __ObjectVector_FWD_DEFINED__ */ + + +#ifndef __ProfileSection_FWD_DEFINED__ +#define __ProfileSection_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class ProfileSection ProfileSection; +#else +typedef struct ProfileSection ProfileSection; +#endif /* __cplusplus */ + +#endif /* __ProfileSection_FWD_DEFINED__ */ + + +#ifndef __ParseName_FWD_DEFINED__ +#define __ParseName_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class ParseName ParseName; +#else +typedef struct ParseName ParseName; +#endif /* __cplusplus */ + +#endif /* __ParseName_FWD_DEFINED__ */ + + +#ifndef __PrivateProfile_FWD_DEFINED__ +#define __PrivateProfile_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class PrivateProfile PrivateProfile; +#else +typedef struct PrivateProfile PrivateProfile; +#endif /* __cplusplus */ + +#endif /* __PrivateProfile_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "oaidl.h" +#include "ocidl.h" + +#ifdef __cplusplus +extern "C"{ +#endif + + +#ifndef __ICommDialog_INTERFACE_DEFINED__ +#define __ICommDialog_INTERFACE_DEFINED__ + +/* interface ICommDialog */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ICommDialog; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("112D2DFC-DC6E-4EEB-B7AE-9A29C293090B") + ICommDialog : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_OpenFileCaption( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_OpenFileCaption( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SaveFileCaption( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_SaveFileCaption( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableCreatePrompt( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableCreatePrompt( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableReadOnly( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableReadOnly( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ReadOnly( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ReadOnly( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NoDereferenceLinks( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_NoDereferenceLinks( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_InitialDir( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_InitialDir( + /* [in] */ BSTR newVal) = 0; + + virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HWND( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [hidden][helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HWND( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BrowseForFolderCaption( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BrowseForFolderCaption( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MessageCaption( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MessageCaption( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ColorDialog( + /* [retval][out] */ VARIANT *pcolorVal) = 0; + + virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( + /* [in] */ BSTR strCaption) = 0; + + virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( + /* [retval][out] */ BSTR *pstrCaption) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMainWindow( + /* [in] */ VARIANT varUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenFileDialog( + /* [optional][in] */ VARIANT varPathName, + /* [optional][in] */ VARIANT varFilter, + /* [retval][out] */ VARIANT *result) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveFileDialog( + /* [optional][in] */ VARIANT varPathName, + /* [optional][in] */ VARIANT varFilter, + /* [retval][out] */ VARIANT *result) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MultiOpenFileDialog( + /* [optional][in] */ VARIANT varMulti, + /* [optional][in] */ VARIANT varFilter, + /* [retval][out] */ VARIANT *pbResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BrowseForFolder( + /* [optional][in] */ VARIANT caption, + /* [optional][in] */ VARIANT varDir, + /* [optional][in] */ VARIANT varMode, + /* [retval][out] */ VARIANT *pvarReturn) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MessageBox( + /* [in] */ VARIANT mes, + /* [optional][in] */ VARIANT typ, + /* [optional][in] */ VARIANT icon, + /* [retval][out] */ VARIANT *pRet) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICommDialogVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICommDialog * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICommDialog * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICommDialog * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ICommDialog * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ICommDialog * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ICommDialog * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ICommDialog * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OpenFileCaption )( + ICommDialog * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_OpenFileCaption )( + ICommDialog * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SaveFileCaption )( + ICommDialog * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SaveFileCaption )( + ICommDialog * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableCreatePrompt )( + ICommDialog * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableCreatePrompt )( + ICommDialog * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableReadOnly )( + ICommDialog * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableReadOnly )( + ICommDialog * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ReadOnly )( + ICommDialog * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ReadOnly )( + ICommDialog * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NoDereferenceLinks )( + ICommDialog * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_NoDereferenceLinks )( + ICommDialog * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_InitialDir )( + ICommDialog * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_InitialDir )( + ICommDialog * This, + /* [in] */ BSTR newVal); + + /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWND )( + ICommDialog * This, + /* [retval][out] */ long *pVal); + + /* [hidden][helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HWND )( + ICommDialog * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BrowseForFolderCaption )( + ICommDialog * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BrowseForFolderCaption )( + ICommDialog * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MessageCaption )( + ICommDialog * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MessageCaption )( + ICommDialog * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ColorDialog )( + ICommDialog * This, + /* [retval][out] */ VARIANT *pcolorVal); + + /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( + ICommDialog * This, + /* [in] */ BSTR strCaption); + + /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( + ICommDialog * This, + /* [retval][out] */ BSTR *pstrCaption); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMainWindow )( + ICommDialog * This, + /* [in] */ VARIANT varUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenFileDialog )( + ICommDialog * This, + /* [optional][in] */ VARIANT varPathName, + /* [optional][in] */ VARIANT varFilter, + /* [retval][out] */ VARIANT *result); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveFileDialog )( + ICommDialog * This, + /* [optional][in] */ VARIANT varPathName, + /* [optional][in] */ VARIANT varFilter, + /* [retval][out] */ VARIANT *result); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MultiOpenFileDialog )( + ICommDialog * This, + /* [optional][in] */ VARIANT varMulti, + /* [optional][in] */ VARIANT varFilter, + /* [retval][out] */ VARIANT *pbResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BrowseForFolder )( + ICommDialog * This, + /* [optional][in] */ VARIANT caption, + /* [optional][in] */ VARIANT varDir, + /* [optional][in] */ VARIANT varMode, + /* [retval][out] */ VARIANT *pvarReturn); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MessageBox )( + ICommDialog * This, + /* [in] */ VARIANT mes, + /* [optional][in] */ VARIANT typ, + /* [optional][in] */ VARIANT icon, + /* [retval][out] */ VARIANT *pRet); + + END_INTERFACE + } ICommDialogVtbl; + + interface ICommDialog + { + CONST_VTBL struct ICommDialogVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICommDialog_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICommDialog_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICommDialog_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICommDialog_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ICommDialog_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ICommDialog_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ICommDialog_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ICommDialog_get_OpenFileCaption(This,pVal) \ + ( (This)->lpVtbl -> get_OpenFileCaption(This,pVal) ) + +#define ICommDialog_put_OpenFileCaption(This,newVal) \ + ( (This)->lpVtbl -> put_OpenFileCaption(This,newVal) ) + +#define ICommDialog_get_SaveFileCaption(This,pVal) \ + ( (This)->lpVtbl -> get_SaveFileCaption(This,pVal) ) + +#define ICommDialog_put_SaveFileCaption(This,newVal) \ + ( (This)->lpVtbl -> put_SaveFileCaption(This,newVal) ) + +#define ICommDialog_get_EnableCreatePrompt(This,pVal) \ + ( (This)->lpVtbl -> get_EnableCreatePrompt(This,pVal) ) + +#define ICommDialog_put_EnableCreatePrompt(This,newVal) \ + ( (This)->lpVtbl -> put_EnableCreatePrompt(This,newVal) ) + +#define ICommDialog_get_EnableReadOnly(This,pVal) \ + ( (This)->lpVtbl -> get_EnableReadOnly(This,pVal) ) + +#define ICommDialog_put_EnableReadOnly(This,newVal) \ + ( (This)->lpVtbl -> put_EnableReadOnly(This,newVal) ) + +#define ICommDialog_get_ReadOnly(This,pVal) \ + ( (This)->lpVtbl -> get_ReadOnly(This,pVal) ) + +#define ICommDialog_put_ReadOnly(This,newVal) \ + ( (This)->lpVtbl -> put_ReadOnly(This,newVal) ) + +#define ICommDialog_get_NoDereferenceLinks(This,pVal) \ + ( (This)->lpVtbl -> get_NoDereferenceLinks(This,pVal) ) + +#define ICommDialog_put_NoDereferenceLinks(This,newVal) \ + ( (This)->lpVtbl -> put_NoDereferenceLinks(This,newVal) ) + +#define ICommDialog_get_InitialDir(This,pVal) \ + ( (This)->lpVtbl -> get_InitialDir(This,pVal) ) + +#define ICommDialog_put_InitialDir(This,newVal) \ + ( (This)->lpVtbl -> put_InitialDir(This,newVal) ) + +#define ICommDialog_get_HWND(This,pVal) \ + ( (This)->lpVtbl -> get_HWND(This,pVal) ) + +#define ICommDialog_put_HWND(This,newVal) \ + ( (This)->lpVtbl -> put_HWND(This,newVal) ) + +#define ICommDialog_get_BrowseForFolderCaption(This,pVal) \ + ( (This)->lpVtbl -> get_BrowseForFolderCaption(This,pVal) ) + +#define ICommDialog_put_BrowseForFolderCaption(This,newVal) \ + ( (This)->lpVtbl -> put_BrowseForFolderCaption(This,newVal) ) + +#define ICommDialog_get_MessageCaption(This,pVal) \ + ( (This)->lpVtbl -> get_MessageCaption(This,pVal) ) + +#define ICommDialog_put_MessageCaption(This,newVal) \ + ( (This)->lpVtbl -> put_MessageCaption(This,newVal) ) + +#define ICommDialog_ColorDialog(This,pcolorVal) \ + ( (This)->lpVtbl -> ColorDialog(This,pcolorVal) ) + +#define ICommDialog_put_Caption(This,strCaption) \ + ( (This)->lpVtbl -> put_Caption(This,strCaption) ) + +#define ICommDialog_get_Caption(This,pstrCaption) \ + ( (This)->lpVtbl -> get_Caption(This,pstrCaption) ) + +#define ICommDialog_SetMainWindow(This,varUnk) \ + ( (This)->lpVtbl -> SetMainWindow(This,varUnk) ) + +#define ICommDialog_OpenFileDialog(This,varPathName,varFilter,result) \ + ( (This)->lpVtbl -> OpenFileDialog(This,varPathName,varFilter,result) ) + +#define ICommDialog_SaveFileDialog(This,varPathName,varFilter,result) \ + ( (This)->lpVtbl -> SaveFileDialog(This,varPathName,varFilter,result) ) + +#define ICommDialog_MultiOpenFileDialog(This,varMulti,varFilter,pbResult) \ + ( (This)->lpVtbl -> MultiOpenFileDialog(This,varMulti,varFilter,pbResult) ) + +#define ICommDialog_BrowseForFolder(This,caption,varDir,varMode,pvarReturn) \ + ( (This)->lpVtbl -> BrowseForFolder(This,caption,varDir,varMode,pvarReturn) ) + +#define ICommDialog_MessageBox(This,mes,typ,icon,pRet) \ + ( (This)->lpVtbl -> MessageBox(This,mes,typ,icon,pRet) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICommDialog_INTERFACE_DEFINED__ */ + + + +#ifndef __SERAPHYSCRIPTTOOLSLib_LIBRARY_DEFINED__ +#define __SERAPHYSCRIPTTOOLSLib_LIBRARY_DEFINED__ + +/* library SERAPHYSCRIPTTOOLSLib */ +/* [helpstring][version][uuid] */ + + +EXTERN_C const IID LIBID_SERAPHYSCRIPTTOOLSLib; + +#ifndef ___ICommDialogEvents_DISPINTERFACE_DEFINED__ +#define ___ICommDialogEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _ICommDialogEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__ICommDialogEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("938B1269-05AD-403A-B049-24D623417B37") + _ICommDialogEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _ICommDialogEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _ICommDialogEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _ICommDialogEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _ICommDialogEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _ICommDialogEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _ICommDialogEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _ICommDialogEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _ICommDialogEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _ICommDialogEventsVtbl; + + interface _ICommDialogEvents + { + CONST_VTBL struct _ICommDialogEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _ICommDialogEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _ICommDialogEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _ICommDialogEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _ICommDialogEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _ICommDialogEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _ICommDialogEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _ICommDialogEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___ICommDialogEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __IOverlappedWindow_INTERFACE_DEFINED__ +#define __IOverlappedWindow_INTERFACE_DEFINED__ + +/* interface IOverlappedWindow */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IOverlappedWindow; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("0B0433B0-97BD-4CCA-AE53-5DD46F901B2F") + IOverlappedWindow : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsEventEmpty( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DoubleBuffer( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [hidden][helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DoubleBuffer( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CreateNoCloseWindow( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CreateNoCloseWindow( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Quit( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Quit( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Style( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Style( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Exstyle( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Exstyle( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WindowClassName( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoMessageLoop( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [hidden][helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoMessageLoop( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoClose( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoClose( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_backColor( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_backColor( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TopMost( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TopMost( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PosX( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PosX( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PosY( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PosY( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Width( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Width( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Height( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Height( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AcceptFiles( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AcceptFiles( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Iconic( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Iconic( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Zoomed( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Zoomed( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Visible( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Visible( + /* [in] */ BOOL newVal) = 0; + + virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HWND( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DropFiles( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Canvas( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Event( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Form( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( + /* [in] */ BSTR strCaption) = 0; + + virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( + /* [retval][out] */ BSTR *pstrCaption) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Object( + /* [optional][in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExitCode( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ExitCode( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WaitCursor( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_WaitCursor( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadIcon( + /* [in] */ VARIANT text) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CenterWindow( void) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClassObject( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ClassObject( + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClientWidth( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClientHeight( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_innerWidth( + /* [retval][out] */ double *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_innerHeight( + /* [retval][out] */ double *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AutoReleaseClassObject( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AutoReleaseClassObject( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DefaultAction( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_DefaultAction( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetClipboardText( + /* [in] */ BSTR text) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetClipboardText( + /* [retval][out] */ VARIANT *pVarText) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE WaitEvent( + /* [optional][in] */ VARIANT varTim, + /* [retval][out] */ BOOL *pRet) = 0; + + virtual /* [hidden][helpstring][id] */ HRESULT STDMETHODCALLTYPE DoEvent( + /* [retval][out] */ VARIANT *varResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DoModal( + /* [retval][out] */ VARIANT *pRetcode) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateChild( + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( + /* [optional][in] */ VARIANT caption, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPlacement( + /* [optional][in] */ VARIANT x, + /* [optional][in] */ VARIANT y, + /* [optional][in] */ VARIANT w, + /* [optional][in] */ VARIANT h, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWindowStyle( + /* [in] */ VARIANT frametype, + /* [optional][in] */ VARIANT caption_system, + /* [optional][in] */ VARIANT maxmin, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFocus( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMenu( + /* [in] */ VARIANT fmt) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetForegroundWindow( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TrackPopupMenu( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT cmd, + /* [retval][out] */ VARIANT *pRet) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckMenu( + /* [in] */ VARIANT cmd, + /* [in] */ VARIANT mode) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnableMenu( + /* [in] */ VARIANT cmd, + /* [in] */ VARIANT mode) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Refresh( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Draw( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTimer( + /* [in] */ VARIANT tim, + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSysColor( + /* [in] */ VARIANT typ, + /* [retval][out] */ VARIANT *col) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IOverlappedWindowVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IOverlappedWindow * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IOverlappedWindow * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IOverlappedWindow * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IOverlappedWindow * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IOverlappedWindow * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IOverlappedWindow * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IOverlappedWindow * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsEventEmpty )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DoubleBuffer )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [hidden][helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DoubleBuffer )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CreateNoCloseWindow )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CreateNoCloseWindow )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Quit )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Quit )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Style )( + IOverlappedWindow * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Style )( + IOverlappedWindow * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Exstyle )( + IOverlappedWindow * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Exstyle )( + IOverlappedWindow * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WindowClassName )( + IOverlappedWindow * This, + /* [retval][out] */ BSTR *pVal); + + /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoMessageLoop )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [hidden][helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoMessageLoop )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoClose )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoClose )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backColor )( + IOverlappedWindow * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_backColor )( + IOverlappedWindow * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TopMost )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TopMost )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PosX )( + IOverlappedWindow * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PosX )( + IOverlappedWindow * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PosY )( + IOverlappedWindow * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PosY )( + IOverlappedWindow * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( + IOverlappedWindow * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( + IOverlappedWindow * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( + IOverlappedWindow * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( + IOverlappedWindow * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AcceptFiles )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AcceptFiles )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Iconic )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Iconic )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Zoomed )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Zoomed )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWND )( + IOverlappedWindow * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DropFiles )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Canvas )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Event )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Form )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pVal); + + /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( + IOverlappedWindow * This, + /* [in] */ BSTR strCaption); + + /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( + IOverlappedWindow * This, + /* [retval][out] */ BSTR *pstrCaption); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Object )( + IOverlappedWindow * This, + /* [optional][in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExitCode )( + IOverlappedWindow * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ExitCode )( + IOverlappedWindow * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WaitCursor )( + IOverlappedWindow * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_WaitCursor )( + IOverlappedWindow * This, + /* [in] */ short newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadIcon )( + IOverlappedWindow * This, + /* [in] */ VARIANT text); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CenterWindow )( + IOverlappedWindow * This); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassObject )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClassObject )( + IOverlappedWindow * This, + /* [in] */ VARIANT newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClientWidth )( + IOverlappedWindow * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClientHeight )( + IOverlappedWindow * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerWidth )( + IOverlappedWindow * This, + /* [retval][out] */ double *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerHeight )( + IOverlappedWindow * This, + /* [retval][out] */ double *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AutoReleaseClassObject )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AutoReleaseClassObject )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultAction )( + IOverlappedWindow * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_DefaultAction )( + IOverlappedWindow * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetClipboardText )( + IOverlappedWindow * This, + /* [in] */ BSTR text); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetClipboardText )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pVarText); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *WaitEvent )( + IOverlappedWindow * This, + /* [optional][in] */ VARIANT varTim, + /* [retval][out] */ BOOL *pRet); + + /* [hidden][helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DoEvent )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *varResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DoModal )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pRetcode); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateChild )( + IOverlappedWindow * This, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( + IOverlappedWindow * This, + /* [optional][in] */ VARIANT caption, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( + IOverlappedWindow * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPlacement )( + IOverlappedWindow * This, + /* [optional][in] */ VARIANT x, + /* [optional][in] */ VARIANT y, + /* [optional][in] */ VARIANT w, + /* [optional][in] */ VARIANT h, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWindowStyle )( + IOverlappedWindow * This, + /* [in] */ VARIANT frametype, + /* [optional][in] */ VARIANT caption_system, + /* [optional][in] */ VARIANT maxmin, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFocus )( + IOverlappedWindow * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMenu )( + IOverlappedWindow * This, + /* [in] */ VARIANT fmt); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetForegroundWindow )( + IOverlappedWindow * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TrackPopupMenu )( + IOverlappedWindow * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT cmd, + /* [retval][out] */ VARIANT *pRet); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckMenu )( + IOverlappedWindow * This, + /* [in] */ VARIANT cmd, + /* [in] */ VARIANT mode); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnableMenu )( + IOverlappedWindow * This, + /* [in] */ VARIANT cmd, + /* [in] */ VARIANT mode); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh )( + IOverlappedWindow * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Draw )( + IOverlappedWindow * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTimer )( + IOverlappedWindow * This, + /* [in] */ VARIANT tim, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSysColor )( + IOverlappedWindow * This, + /* [in] */ VARIANT typ, + /* [retval][out] */ VARIANT *col); + + END_INTERFACE + } IOverlappedWindowVtbl; + + interface IOverlappedWindow + { + CONST_VTBL struct IOverlappedWindowVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IOverlappedWindow_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IOverlappedWindow_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IOverlappedWindow_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IOverlappedWindow_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IOverlappedWindow_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IOverlappedWindow_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IOverlappedWindow_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IOverlappedWindow_get_IsEventEmpty(This,pVal) \ + ( (This)->lpVtbl -> get_IsEventEmpty(This,pVal) ) + +#define IOverlappedWindow_get_DoubleBuffer(This,pVal) \ + ( (This)->lpVtbl -> get_DoubleBuffer(This,pVal) ) + +#define IOverlappedWindow_put_DoubleBuffer(This,newVal) \ + ( (This)->lpVtbl -> put_DoubleBuffer(This,newVal) ) + +#define IOverlappedWindow_put_CreateNoCloseWindow(This,newVal) \ + ( (This)->lpVtbl -> put_CreateNoCloseWindow(This,newVal) ) + +#define IOverlappedWindow_get_CreateNoCloseWindow(This,pVal) \ + ( (This)->lpVtbl -> get_CreateNoCloseWindow(This,pVal) ) + +#define IOverlappedWindow_get_Quit(This,pVal) \ + ( (This)->lpVtbl -> get_Quit(This,pVal) ) + +#define IOverlappedWindow_put_Quit(This,newVal) \ + ( (This)->lpVtbl -> put_Quit(This,newVal) ) + +#define IOverlappedWindow_get_Style(This,pVal) \ + ( (This)->lpVtbl -> get_Style(This,pVal) ) + +#define IOverlappedWindow_put_Style(This,newVal) \ + ( (This)->lpVtbl -> put_Style(This,newVal) ) + +#define IOverlappedWindow_get_Exstyle(This,pVal) \ + ( (This)->lpVtbl -> get_Exstyle(This,pVal) ) + +#define IOverlappedWindow_put_Exstyle(This,newVal) \ + ( (This)->lpVtbl -> put_Exstyle(This,newVal) ) + +#define IOverlappedWindow_get_WindowClassName(This,pVal) \ + ( (This)->lpVtbl -> get_WindowClassName(This,pVal) ) + +#define IOverlappedWindow_get_AutoMessageLoop(This,pVal) \ + ( (This)->lpVtbl -> get_AutoMessageLoop(This,pVal) ) + +#define IOverlappedWindow_put_AutoMessageLoop(This,newVal) \ + ( (This)->lpVtbl -> put_AutoMessageLoop(This,newVal) ) + +#define IOverlappedWindow_get_AutoClose(This,pVal) \ + ( (This)->lpVtbl -> get_AutoClose(This,pVal) ) + +#define IOverlappedWindow_put_AutoClose(This,newVal) \ + ( (This)->lpVtbl -> put_AutoClose(This,newVal) ) + +#define IOverlappedWindow_get_backColor(This,pVal) \ + ( (This)->lpVtbl -> get_backColor(This,pVal) ) + +#define IOverlappedWindow_put_backColor(This,newVal) \ + ( (This)->lpVtbl -> put_backColor(This,newVal) ) + +#define IOverlappedWindow_get_TopMost(This,pVal) \ + ( (This)->lpVtbl -> get_TopMost(This,pVal) ) + +#define IOverlappedWindow_put_TopMost(This,newVal) \ + ( (This)->lpVtbl -> put_TopMost(This,newVal) ) + +#define IOverlappedWindow_get_PosX(This,pVal) \ + ( (This)->lpVtbl -> get_PosX(This,pVal) ) + +#define IOverlappedWindow_put_PosX(This,newVal) \ + ( (This)->lpVtbl -> put_PosX(This,newVal) ) + +#define IOverlappedWindow_get_PosY(This,pVal) \ + ( (This)->lpVtbl -> get_PosY(This,pVal) ) + +#define IOverlappedWindow_put_PosY(This,newVal) \ + ( (This)->lpVtbl -> put_PosY(This,newVal) ) + +#define IOverlappedWindow_get_Width(This,pVal) \ + ( (This)->lpVtbl -> get_Width(This,pVal) ) + +#define IOverlappedWindow_put_Width(This,newVal) \ + ( (This)->lpVtbl -> put_Width(This,newVal) ) + +#define IOverlappedWindow_get_Height(This,pVal) \ + ( (This)->lpVtbl -> get_Height(This,pVal) ) + +#define IOverlappedWindow_put_Height(This,newVal) \ + ( (This)->lpVtbl -> put_Height(This,newVal) ) + +#define IOverlappedWindow_get_AcceptFiles(This,pVal) \ + ( (This)->lpVtbl -> get_AcceptFiles(This,pVal) ) + +#define IOverlappedWindow_put_AcceptFiles(This,newVal) \ + ( (This)->lpVtbl -> put_AcceptFiles(This,newVal) ) + +#define IOverlappedWindow_get_Enable(This,pVal) \ + ( (This)->lpVtbl -> get_Enable(This,pVal) ) + +#define IOverlappedWindow_put_Enable(This,newVal) \ + ( (This)->lpVtbl -> put_Enable(This,newVal) ) + +#define IOverlappedWindow_get_Iconic(This,pVal) \ + ( (This)->lpVtbl -> get_Iconic(This,pVal) ) + +#define IOverlappedWindow_put_Iconic(This,newVal) \ + ( (This)->lpVtbl -> put_Iconic(This,newVal) ) + +#define IOverlappedWindow_get_Zoomed(This,pVal) \ + ( (This)->lpVtbl -> get_Zoomed(This,pVal) ) + +#define IOverlappedWindow_put_Zoomed(This,newVal) \ + ( (This)->lpVtbl -> put_Zoomed(This,newVal) ) + +#define IOverlappedWindow_get_Visible(This,pVal) \ + ( (This)->lpVtbl -> get_Visible(This,pVal) ) + +#define IOverlappedWindow_put_Visible(This,newVal) \ + ( (This)->lpVtbl -> put_Visible(This,newVal) ) + +#define IOverlappedWindow_get_HWND(This,pVal) \ + ( (This)->lpVtbl -> get_HWND(This,pVal) ) + +#define IOverlappedWindow_get_DropFiles(This,pVal) \ + ( (This)->lpVtbl -> get_DropFiles(This,pVal) ) + +#define IOverlappedWindow_get_Canvas(This,pVal) \ + ( (This)->lpVtbl -> get_Canvas(This,pVal) ) + +#define IOverlappedWindow_get_Event(This,pVal) \ + ( (This)->lpVtbl -> get_Event(This,pVal) ) + +#define IOverlappedWindow_get_Form(This,pVal) \ + ( (This)->lpVtbl -> get_Form(This,pVal) ) + +#define IOverlappedWindow_put_Caption(This,strCaption) \ + ( (This)->lpVtbl -> put_Caption(This,strCaption) ) + +#define IOverlappedWindow_get_Caption(This,pstrCaption) \ + ( (This)->lpVtbl -> get_Caption(This,pstrCaption) ) + +#define IOverlappedWindow_get_Object(This,idx,pVal) \ + ( (This)->lpVtbl -> get_Object(This,idx,pVal) ) + +#define IOverlappedWindow_get_ExitCode(This,pVal) \ + ( (This)->lpVtbl -> get_ExitCode(This,pVal) ) + +#define IOverlappedWindow_put_ExitCode(This,newVal) \ + ( (This)->lpVtbl -> put_ExitCode(This,newVal) ) + +#define IOverlappedWindow_get_WaitCursor(This,pVal) \ + ( (This)->lpVtbl -> get_WaitCursor(This,pVal) ) + +#define IOverlappedWindow_put_WaitCursor(This,newVal) \ + ( (This)->lpVtbl -> put_WaitCursor(This,newVal) ) + +#define IOverlappedWindow_LoadIcon(This,text) \ + ( (This)->lpVtbl -> LoadIcon(This,text) ) + +#define IOverlappedWindow_CenterWindow(This) \ + ( (This)->lpVtbl -> CenterWindow(This) ) + +#define IOverlappedWindow_get_ClassObject(This,pVal) \ + ( (This)->lpVtbl -> get_ClassObject(This,pVal) ) + +#define IOverlappedWindow_put_ClassObject(This,newVal) \ + ( (This)->lpVtbl -> put_ClassObject(This,newVal) ) + +#define IOverlappedWindow_get_ClientWidth(This,pVal) \ + ( (This)->lpVtbl -> get_ClientWidth(This,pVal) ) + +#define IOverlappedWindow_get_ClientHeight(This,pVal) \ + ( (This)->lpVtbl -> get_ClientHeight(This,pVal) ) + +#define IOverlappedWindow_get_innerWidth(This,pVal) \ + ( (This)->lpVtbl -> get_innerWidth(This,pVal) ) + +#define IOverlappedWindow_get_innerHeight(This,pVal) \ + ( (This)->lpVtbl -> get_innerHeight(This,pVal) ) + +#define IOverlappedWindow_get_AutoReleaseClassObject(This,pVal) \ + ( (This)->lpVtbl -> get_AutoReleaseClassObject(This,pVal) ) + +#define IOverlappedWindow_put_AutoReleaseClassObject(This,newVal) \ + ( (This)->lpVtbl -> put_AutoReleaseClassObject(This,newVal) ) + +#define IOverlappedWindow_get_DefaultAction(This,pVal) \ + ( (This)->lpVtbl -> get_DefaultAction(This,pVal) ) + +#define IOverlappedWindow_put_DefaultAction(This,newVal) \ + ( (This)->lpVtbl -> put_DefaultAction(This,newVal) ) + +#define IOverlappedWindow_SetClipboardText(This,text) \ + ( (This)->lpVtbl -> SetClipboardText(This,text) ) + +#define IOverlappedWindow_GetClipboardText(This,pVarText) \ + ( (This)->lpVtbl -> GetClipboardText(This,pVarText) ) + +#define IOverlappedWindow_WaitEvent(This,varTim,pRet) \ + ( (This)->lpVtbl -> WaitEvent(This,varTim,pRet) ) + +#define IOverlappedWindow_DoEvent(This,varResult) \ + ( (This)->lpVtbl -> DoEvent(This,varResult) ) + +#define IOverlappedWindow_DoModal(This,pRetcode) \ + ( (This)->lpVtbl -> DoModal(This,pRetcode) ) + +#define IOverlappedWindow_CreateChild(This,pvarUnk) \ + ( (This)->lpVtbl -> CreateChild(This,pvarUnk) ) + +#define IOverlappedWindow_Open(This,caption,pvarUnk) \ + ( (This)->lpVtbl -> Open(This,caption,pvarUnk) ) + +#define IOverlappedWindow_Close(This) \ + ( (This)->lpVtbl -> Close(This) ) + +#define IOverlappedWindow_SetPlacement(This,x,y,w,h,pvarUnk) \ + ( (This)->lpVtbl -> SetPlacement(This,x,y,w,h,pvarUnk) ) + +#define IOverlappedWindow_SetWindowStyle(This,frametype,caption_system,maxmin,pvarUnk) \ + ( (This)->lpVtbl -> SetWindowStyle(This,frametype,caption_system,maxmin,pvarUnk) ) + +#define IOverlappedWindow_SetFocus(This) \ + ( (This)->lpVtbl -> SetFocus(This) ) + +#define IOverlappedWindow_SetMenu(This,fmt) \ + ( (This)->lpVtbl -> SetMenu(This,fmt) ) + +#define IOverlappedWindow_SetForegroundWindow(This) \ + ( (This)->lpVtbl -> SetForegroundWindow(This) ) + +#define IOverlappedWindow_TrackPopupMenu(This,text,cmd,pRet) \ + ( (This)->lpVtbl -> TrackPopupMenu(This,text,cmd,pRet) ) + +#define IOverlappedWindow_CheckMenu(This,cmd,mode) \ + ( (This)->lpVtbl -> CheckMenu(This,cmd,mode) ) + +#define IOverlappedWindow_EnableMenu(This,cmd,mode) \ + ( (This)->lpVtbl -> EnableMenu(This,cmd,mode) ) + +#define IOverlappedWindow_Refresh(This) \ + ( (This)->lpVtbl -> Refresh(This) ) + +#define IOverlappedWindow_Draw(This) \ + ( (This)->lpVtbl -> Draw(This) ) + +#define IOverlappedWindow_SetTimer(This,tim,pVal) \ + ( (This)->lpVtbl -> SetTimer(This,tim,pVal) ) + +#define IOverlappedWindow_GetSysColor(This,typ,col) \ + ( (This)->lpVtbl -> GetSysColor(This,typ,col) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IOverlappedWindow_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_CommDialog; + +#ifdef __cplusplus + +class DECLSPEC_UUID("E0F061C5-A9E7-4DAD-97C7-051F91C2D1EC") +CommDialog; +#endif + +#ifndef ___IOverlappedWindowEvents_DISPINTERFACE_DEFINED__ +#define ___IOverlappedWindowEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _IOverlappedWindowEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__IOverlappedWindowEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("73421190-1EAF-4798-B35F-92D228F253D9") + _IOverlappedWindowEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _IOverlappedWindowEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _IOverlappedWindowEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _IOverlappedWindowEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _IOverlappedWindowEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _IOverlappedWindowEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _IOverlappedWindowEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _IOverlappedWindowEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _IOverlappedWindowEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _IOverlappedWindowEventsVtbl; + + interface _IOverlappedWindowEvents + { + CONST_VTBL struct _IOverlappedWindowEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _IOverlappedWindowEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _IOverlappedWindowEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _IOverlappedWindowEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _IOverlappedWindowEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _IOverlappedWindowEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _IOverlappedWindowEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _IOverlappedWindowEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___IOverlappedWindowEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __IControl_INTERFACE_DEFINED__ +#define __IControl_INTERFACE_DEFINED__ + +/* interface IControl */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IControl; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("504DDD1C-D928-45B4-994B-0E18E4CFCB71") + IControl : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Text( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Text( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ID( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ID( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Visibility( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Visibility( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Enable( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Enable( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CheckState( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CheckState( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Width( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Width( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Height( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Height( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PosX( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PosX( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PosY( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PosY( + /* [in] */ short newVal) = 0; + + virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Style( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [hidden][helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Style( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Exstyle( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Exstyle( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClassName( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [hidden][helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_HWND( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentSelectedItem( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CurrentSelectedItem( + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemSelectState( + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ItemSelectState( + /* [in] */ VARIANT idx, + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_SelectedCount( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_TreeRoot( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemObject( + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteAllItems( void) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemCheckState( + /* [in] */ VARIANT idx, + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ItemCheckState( + /* [in] */ VARIANT idx, + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteSelectedItem( void) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ItemText( + /* [in] */ VARIANT idx, + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ItemText( + /* [in] */ VARIANT idx, + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetClassEvent( + /* [in] */ BSTR name, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateChild( + /* [in] */ VARIANT text, + /* [in] */ VARIANT varItem, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( + /* [retval][out] */ IUnknown **pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Refresh( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPlacement( + /* [optional][in] */ VARIANT x, + /* [optional][in] */ VARIANT y, + /* [optional][in] */ VARIANT w, + /* [optional][in] */ VARIANT h, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCheck( + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetID( + /* [in] */ VARIANT varID, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddString( + /* [in] */ VARIANT text, + /* [retval][out] */ VARIANT *pRet) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetColumnText( + /* [in] */ VARIANT item, + /* [in] */ VARIANT col, + /* [in] */ VARIANT text) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetColumnText( + /* [in] */ VARIANT idx, + /* [in] */ VARIANT col, + /* [retval][out] */ VARIANT *pText) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeleteString( + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pRet) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( + /* [retval][out] */ VARIANT *pRet) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IControlVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IControl * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IControl * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IControl * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IControl * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IControl * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IControl * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IControl * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Text )( + IControl * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Text )( + IControl * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ID )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ID )( + IControl * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visibility )( + IControl * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visibility )( + IControl * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Enable )( + IControl * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Enable )( + IControl * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CheckState )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CheckState )( + IControl * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Width )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Width )( + IControl * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Height )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Height )( + IControl * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PosX )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PosX )( + IControl * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PosY )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PosY )( + IControl * This, + /* [in] */ short newVal); + + /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Style )( + IControl * This, + /* [retval][out] */ long *pVal); + + /* [hidden][helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Style )( + IControl * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Exstyle )( + IControl * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Exstyle )( + IControl * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( + IControl * This, + /* [retval][out] */ BSTR *pVal); + + /* [hidden][helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HWND )( + IControl * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentSelectedItem )( + IControl * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentSelectedItem )( + IControl * This, + /* [in] */ VARIANT newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemSelectState )( + IControl * This, + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ItemSelectState )( + IControl * This, + /* [in] */ VARIANT idx, + /* [in] */ VARIANT newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectedCount )( + IControl * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TreeRoot )( + IControl * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemObject )( + IControl * This, + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteAllItems )( + IControl * This); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemCheckState )( + IControl * This, + /* [in] */ VARIANT idx, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ItemCheckState )( + IControl * This, + /* [in] */ VARIANT idx, + /* [in] */ BOOL newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteSelectedItem )( + IControl * This); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemText )( + IControl * This, + /* [in] */ VARIANT idx, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ItemText )( + IControl * This, + /* [in] */ VARIANT idx, + /* [in] */ BSTR newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetClassEvent )( + IControl * This, + /* [in] */ BSTR name, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateChild )( + IControl * This, + /* [in] */ VARIANT text, + /* [in] */ VARIANT varItem, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( + IControl * This, + /* [retval][out] */ IUnknown **pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Refresh )( + IControl * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPlacement )( + IControl * This, + /* [optional][in] */ VARIANT x, + /* [optional][in] */ VARIANT y, + /* [optional][in] */ VARIANT w, + /* [optional][in] */ VARIANT h, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCheck )( + IControl * This, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetID )( + IControl * This, + /* [in] */ VARIANT varID, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddString )( + IControl * This, + /* [in] */ VARIANT text, + /* [retval][out] */ VARIANT *pRet); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetColumnText )( + IControl * This, + /* [in] */ VARIANT item, + /* [in] */ VARIANT col, + /* [in] */ VARIANT text); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetColumnText )( + IControl * This, + /* [in] */ VARIANT idx, + /* [in] */ VARIANT col, + /* [retval][out] */ VARIANT *pText); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeleteString )( + IControl * This, + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pRet); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( + IControl * This, + /* [retval][out] */ VARIANT *pRet); + + END_INTERFACE + } IControlVtbl; + + interface IControl + { + CONST_VTBL struct IControlVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IControl_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IControl_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IControl_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IControl_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IControl_get_Text(This,pVal) \ + ( (This)->lpVtbl -> get_Text(This,pVal) ) + +#define IControl_put_Text(This,newVal) \ + ( (This)->lpVtbl -> put_Text(This,newVal) ) + +#define IControl_get_ID(This,pVal) \ + ( (This)->lpVtbl -> get_ID(This,pVal) ) + +#define IControl_put_ID(This,newVal) \ + ( (This)->lpVtbl -> put_ID(This,newVal) ) + +#define IControl_get_Visibility(This,pVal) \ + ( (This)->lpVtbl -> get_Visibility(This,pVal) ) + +#define IControl_put_Visibility(This,newVal) \ + ( (This)->lpVtbl -> put_Visibility(This,newVal) ) + +#define IControl_get_Enable(This,pVal) \ + ( (This)->lpVtbl -> get_Enable(This,pVal) ) + +#define IControl_put_Enable(This,newVal) \ + ( (This)->lpVtbl -> put_Enable(This,newVal) ) + +#define IControl_get_CheckState(This,pVal) \ + ( (This)->lpVtbl -> get_CheckState(This,pVal) ) + +#define IControl_put_CheckState(This,newVal) \ + ( (This)->lpVtbl -> put_CheckState(This,newVal) ) + +#define IControl_get_Width(This,pVal) \ + ( (This)->lpVtbl -> get_Width(This,pVal) ) + +#define IControl_put_Width(This,newVal) \ + ( (This)->lpVtbl -> put_Width(This,newVal) ) + +#define IControl_get_Height(This,pVal) \ + ( (This)->lpVtbl -> get_Height(This,pVal) ) + +#define IControl_put_Height(This,newVal) \ + ( (This)->lpVtbl -> put_Height(This,newVal) ) + +#define IControl_get_PosX(This,pVal) \ + ( (This)->lpVtbl -> get_PosX(This,pVal) ) + +#define IControl_put_PosX(This,newVal) \ + ( (This)->lpVtbl -> put_PosX(This,newVal) ) + +#define IControl_get_PosY(This,pVal) \ + ( (This)->lpVtbl -> get_PosY(This,pVal) ) + +#define IControl_put_PosY(This,newVal) \ + ( (This)->lpVtbl -> put_PosY(This,newVal) ) + +#define IControl_get_Style(This,pVal) \ + ( (This)->lpVtbl -> get_Style(This,pVal) ) + +#define IControl_put_Style(This,newVal) \ + ( (This)->lpVtbl -> put_Style(This,newVal) ) + +#define IControl_get_Exstyle(This,pVal) \ + ( (This)->lpVtbl -> get_Exstyle(This,pVal) ) + +#define IControl_put_Exstyle(This,newVal) \ + ( (This)->lpVtbl -> put_Exstyle(This,newVal) ) + +#define IControl_get_ClassName(This,pVal) \ + ( (This)->lpVtbl -> get_ClassName(This,pVal) ) + +#define IControl_get_HWND(This,pVal) \ + ( (This)->lpVtbl -> get_HWND(This,pVal) ) + +#define IControl_get_CurrentSelectedItem(This,pVal) \ + ( (This)->lpVtbl -> get_CurrentSelectedItem(This,pVal) ) + +#define IControl_put_CurrentSelectedItem(This,newVal) \ + ( (This)->lpVtbl -> put_CurrentSelectedItem(This,newVal) ) + +#define IControl_get_ItemSelectState(This,idx,pVal) \ + ( (This)->lpVtbl -> get_ItemSelectState(This,idx,pVal) ) + +#define IControl_put_ItemSelectState(This,idx,newVal) \ + ( (This)->lpVtbl -> put_ItemSelectState(This,idx,newVal) ) + +#define IControl_get_SelectedCount(This,pVal) \ + ( (This)->lpVtbl -> get_SelectedCount(This,pVal) ) + +#define IControl_get_TreeRoot(This,pVal) \ + ( (This)->lpVtbl -> get_TreeRoot(This,pVal) ) + +#define IControl_get_ItemObject(This,idx,pVal) \ + ( (This)->lpVtbl -> get_ItemObject(This,idx,pVal) ) + +#define IControl_DeleteAllItems(This) \ + ( (This)->lpVtbl -> DeleteAllItems(This) ) + +#define IControl_get_ItemCheckState(This,idx,pVal) \ + ( (This)->lpVtbl -> get_ItemCheckState(This,idx,pVal) ) + +#define IControl_put_ItemCheckState(This,idx,newVal) \ + ( (This)->lpVtbl -> put_ItemCheckState(This,idx,newVal) ) + +#define IControl_DeleteSelectedItem(This) \ + ( (This)->lpVtbl -> DeleteSelectedItem(This) ) + +#define IControl_get_ItemText(This,idx,pVal) \ + ( (This)->lpVtbl -> get_ItemText(This,idx,pVal) ) + +#define IControl_put_ItemText(This,idx,newVal) \ + ( (This)->lpVtbl -> put_ItemText(This,idx,newVal) ) + +#define IControl_SetClassEvent(This,name,pvarUnk) \ + ( (This)->lpVtbl -> SetClassEvent(This,name,pvarUnk) ) + +#define IControl_CreateChild(This,text,varItem,pvarUnk) \ + ( (This)->lpVtbl -> CreateChild(This,text,varItem,pvarUnk) ) + +#define IControl_get__NewEnum(This,pVal) \ + ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) + +#define IControl_Refresh(This) \ + ( (This)->lpVtbl -> Refresh(This) ) + +#define IControl_SetPlacement(This,x,y,w,h,pvarUnk) \ + ( (This)->lpVtbl -> SetPlacement(This,x,y,w,h,pvarUnk) ) + +#define IControl_SetCheck(This,pvarUnk) \ + ( (This)->lpVtbl -> SetCheck(This,pvarUnk) ) + +#define IControl_SetID(This,varID,pvarUnk) \ + ( (This)->lpVtbl -> SetID(This,varID,pvarUnk) ) + +#define IControl_AddString(This,text,pRet) \ + ( (This)->lpVtbl -> AddString(This,text,pRet) ) + +#define IControl_SetColumnText(This,item,col,text) \ + ( (This)->lpVtbl -> SetColumnText(This,item,col,text) ) + +#define IControl_GetColumnText(This,idx,col,pText) \ + ( (This)->lpVtbl -> GetColumnText(This,idx,col,pText) ) + +#define IControl_DeleteString(This,idx,pRet) \ + ( (This)->lpVtbl -> DeleteString(This,idx,pRet) ) + +#define IControl_GetCount(This,pRet) \ + ( (This)->lpVtbl -> GetCount(This,pRet) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IControl_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_OverlappedWindow; + +#ifdef __cplusplus + +class DECLSPEC_UUID("B2946768-9331-43B8-BCD8-54FB6086A721") +OverlappedWindow; +#endif + +#ifndef ___IControlEvents_DISPINTERFACE_DEFINED__ +#define ___IControlEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _IControlEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__IControlEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("64A4FBF7-2BAE-4C78-A00D-ADCFAEACEEBF") + _IControlEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _IControlEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _IControlEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _IControlEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _IControlEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _IControlEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _IControlEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _IControlEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _IControlEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _IControlEventsVtbl; + + interface _IControlEvents + { + CONST_VTBL struct _IControlEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _IControlEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _IControlEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _IControlEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _IControlEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _IControlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _IControlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _IControlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___IControlEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __ICanvas_INTERFACE_DEFINED__ +#define __ICanvas_INTERFACE_DEFINED__ + +/* interface ICanvas */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ICanvas; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("644FE99A-D161-44A1-BF25-9589DB48CAAB") + ICanvas : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Layer( + /* [in] */ VARIANT varLay, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MarginWidth( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MarginWidth( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MarginHeight( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MarginHeight( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Print( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintAs( + /* [optional][in] */ VARIANT print, + /* [retval][out] */ VARIANT *pRet) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPrinterDefault( + /* [optional][in] */ VARIANT name) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadPicture( + /* [in] */ VARIANT path, + /* [retval][out] */ VARIANT *punkVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICanvasVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICanvas * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICanvas * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICanvas * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ICanvas * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ICanvas * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ICanvas * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ICanvas * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Layer )( + ICanvas * This, + /* [in] */ VARIANT varLay, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MarginWidth )( + ICanvas * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MarginWidth )( + ICanvas * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MarginHeight )( + ICanvas * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MarginHeight )( + ICanvas * This, + /* [in] */ long newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Print )( + ICanvas * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintAs )( + ICanvas * This, + /* [optional][in] */ VARIANT print, + /* [retval][out] */ VARIANT *pRet); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPrinterDefault )( + ICanvas * This, + /* [optional][in] */ VARIANT name); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadPicture )( + ICanvas * This, + /* [in] */ VARIANT path, + /* [retval][out] */ VARIANT *punkVal); + + END_INTERFACE + } ICanvasVtbl; + + interface ICanvas + { + CONST_VTBL struct ICanvasVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICanvas_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICanvas_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICanvas_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICanvas_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ICanvas_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ICanvas_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ICanvas_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ICanvas_get_Layer(This,varLay,pVal) \ + ( (This)->lpVtbl -> get_Layer(This,varLay,pVal) ) + +#define ICanvas_get_MarginWidth(This,pVal) \ + ( (This)->lpVtbl -> get_MarginWidth(This,pVal) ) + +#define ICanvas_put_MarginWidth(This,newVal) \ + ( (This)->lpVtbl -> put_MarginWidth(This,newVal) ) + +#define ICanvas_get_MarginHeight(This,pVal) \ + ( (This)->lpVtbl -> get_MarginHeight(This,pVal) ) + +#define ICanvas_put_MarginHeight(This,newVal) \ + ( (This)->lpVtbl -> put_MarginHeight(This,newVal) ) + +#define ICanvas_Print(This) \ + ( (This)->lpVtbl -> Print(This) ) + +#define ICanvas_PrintAs(This,print,pRet) \ + ( (This)->lpVtbl -> PrintAs(This,print,pRet) ) + +#define ICanvas_GetPrinterDefault(This,name) \ + ( (This)->lpVtbl -> GetPrinterDefault(This,name) ) + +#define ICanvas_LoadPicture(This,path,punkVal) \ + ( (This)->lpVtbl -> LoadPicture(This,path,punkVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICanvas_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_Control; + +#ifdef __cplusplus + +class DECLSPEC_UUID("AE3E878A-9C96-415D-88CB-F6F993DFAFE4") +Control; +#endif + +#ifndef ___ICanvasEvents_DISPINTERFACE_DEFINED__ +#define ___ICanvasEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _ICanvasEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__ICanvasEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("374972C2-30A0-45D5-9CE3-50962F39D376") + _ICanvasEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _ICanvasEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _ICanvasEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _ICanvasEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _ICanvasEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _ICanvasEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _ICanvasEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _ICanvasEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _ICanvasEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _ICanvasEventsVtbl; + + interface _ICanvasEvents + { + CONST_VTBL struct _ICanvasEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _ICanvasEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _ICanvasEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _ICanvasEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _ICanvasEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _ICanvasEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _ICanvasEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _ICanvasEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___ICanvasEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __ILayer_INTERFACE_DEFINED__ +#define __ILayer_INTERFACE_DEFINED__ + +/* interface ILayer */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ILayer; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("5E9EFBAD-D673-4095-A8D0-9F915E0E9A86") + ILayer : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Color( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Color( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FillColor( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FillColor( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FontColor( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FontColor( + /* [in] */ long newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FontName( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FontName( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FontSize( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FontSize( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Visible( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Visible( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Circle( + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [in] */ VARIANT radius) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Line( + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Box( + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Arc( + /* [in] */ VARIANT x1, + /* [in] */ VARIANT y1, + /* [in] */ VARIANT x2, + /* [in] */ VARIANT y2, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FillBox( + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FillCircle( + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [in] */ VARIANT radius) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FillArc( + /* [in] */ VARIANT x1, + /* [in] */ VARIANT y1, + /* [in] */ VARIANT x2, + /* [in] */ VARIANT y2, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Text( + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [in] */ VARIANT text) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TextBox( + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT fmt) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FillRBox( + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey, + /* [in] */ VARIANT w, + /* [in] */ VARIANT h) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Polygon( + /* [in] */ VARIANT cx, + /* [in] */ VARIANT cy, + /* [in] */ VARIANT arrayPt) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Picture( + /* [in] */ VARIANT idx, + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [optional][in] */ VARIANT w, + /* [optional][in] */ VARIANT h) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMappingMode( + /* [in] */ VARIANT mode) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ILayerVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ILayer * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ILayer * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ILayer * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ILayer * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ILayer * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ILayer * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ILayer * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Color )( + ILayer * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Color )( + ILayer * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FillColor )( + ILayer * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FillColor )( + ILayer * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FontColor )( + ILayer * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FontColor )( + ILayer * This, + /* [in] */ long newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FontName )( + ILayer * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FontName )( + ILayer * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FontSize )( + ILayer * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FontSize )( + ILayer * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Visible )( + ILayer * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Visible )( + ILayer * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( + ILayer * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Circle )( + ILayer * This, + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [in] */ VARIANT radius); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Line )( + ILayer * This, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Box )( + ILayer * This, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Arc )( + ILayer * This, + /* [in] */ VARIANT x1, + /* [in] */ VARIANT y1, + /* [in] */ VARIANT x2, + /* [in] */ VARIANT y2, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FillBox )( + ILayer * This, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FillCircle )( + ILayer * This, + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [in] */ VARIANT radius); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FillArc )( + ILayer * This, + /* [in] */ VARIANT x1, + /* [in] */ VARIANT y1, + /* [in] */ VARIANT x2, + /* [in] */ VARIANT y2, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Text )( + ILayer * This, + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [in] */ VARIANT text); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TextBox )( + ILayer * This, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT fmt); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FillRBox )( + ILayer * This, + /* [in] */ VARIANT sx, + /* [in] */ VARIANT sy, + /* [in] */ VARIANT ex, + /* [in] */ VARIANT ey, + /* [in] */ VARIANT w, + /* [in] */ VARIANT h); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Polygon )( + ILayer * This, + /* [in] */ VARIANT cx, + /* [in] */ VARIANT cy, + /* [in] */ VARIANT arrayPt); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Picture )( + ILayer * This, + /* [in] */ VARIANT idx, + /* [in] */ VARIANT x, + /* [in] */ VARIANT y, + /* [optional][in] */ VARIANT w, + /* [optional][in] */ VARIANT h); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMappingMode )( + ILayer * This, + /* [in] */ VARIANT mode); + + END_INTERFACE + } ILayerVtbl; + + interface ILayer + { + CONST_VTBL struct ILayerVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ILayer_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ILayer_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ILayer_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ILayer_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ILayer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ILayer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ILayer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ILayer_get_Color(This,pVal) \ + ( (This)->lpVtbl -> get_Color(This,pVal) ) + +#define ILayer_put_Color(This,newVal) \ + ( (This)->lpVtbl -> put_Color(This,newVal) ) + +#define ILayer_get_FillColor(This,pVal) \ + ( (This)->lpVtbl -> get_FillColor(This,pVal) ) + +#define ILayer_put_FillColor(This,newVal) \ + ( (This)->lpVtbl -> put_FillColor(This,newVal) ) + +#define ILayer_get_FontColor(This,pVal) \ + ( (This)->lpVtbl -> get_FontColor(This,pVal) ) + +#define ILayer_put_FontColor(This,newVal) \ + ( (This)->lpVtbl -> put_FontColor(This,newVal) ) + +#define ILayer_get_FontName(This,pVal) \ + ( (This)->lpVtbl -> get_FontName(This,pVal) ) + +#define ILayer_put_FontName(This,newVal) \ + ( (This)->lpVtbl -> put_FontName(This,newVal) ) + +#define ILayer_put_FontSize(This,newVal) \ + ( (This)->lpVtbl -> put_FontSize(This,newVal) ) + +#define ILayer_get_FontSize(This,pVal) \ + ( (This)->lpVtbl -> get_FontSize(This,pVal) ) + +#define ILayer_get_Visible(This,pVal) \ + ( (This)->lpVtbl -> get_Visible(This,pVal) ) + +#define ILayer_put_Visible(This,newVal) \ + ( (This)->lpVtbl -> put_Visible(This,newVal) ) + +#define ILayer_Clear(This) \ + ( (This)->lpVtbl -> Clear(This) ) + +#define ILayer_Circle(This,x,y,radius) \ + ( (This)->lpVtbl -> Circle(This,x,y,radius) ) + +#define ILayer_Line(This,sx,sy,ex,ey) \ + ( (This)->lpVtbl -> Line(This,sx,sy,ex,ey) ) + +#define ILayer_Box(This,sx,sy,ex,ey) \ + ( (This)->lpVtbl -> Box(This,sx,sy,ex,ey) ) + +#define ILayer_Arc(This,x1,y1,x2,y2,sx,sy,ex,ey) \ + ( (This)->lpVtbl -> Arc(This,x1,y1,x2,y2,sx,sy,ex,ey) ) + +#define ILayer_FillBox(This,sx,sy,ex,ey) \ + ( (This)->lpVtbl -> FillBox(This,sx,sy,ex,ey) ) + +#define ILayer_FillCircle(This,x,y,radius) \ + ( (This)->lpVtbl -> FillCircle(This,x,y,radius) ) + +#define ILayer_FillArc(This,x1,y1,x2,y2,sx,sy,ex,ey) \ + ( (This)->lpVtbl -> FillArc(This,x1,y1,x2,y2,sx,sy,ex,ey) ) + +#define ILayer_Text(This,x,y,text) \ + ( (This)->lpVtbl -> Text(This,x,y,text) ) + +#define ILayer_TextBox(This,sx,sy,ex,ey,text,fmt) \ + ( (This)->lpVtbl -> TextBox(This,sx,sy,ex,ey,text,fmt) ) + +#define ILayer_FillRBox(This,sx,sy,ex,ey,w,h) \ + ( (This)->lpVtbl -> FillRBox(This,sx,sy,ex,ey,w,h) ) + +#define ILayer_Polygon(This,cx,cy,arrayPt) \ + ( (This)->lpVtbl -> Polygon(This,cx,cy,arrayPt) ) + +#define ILayer_Picture(This,idx,x,y,w,h) \ + ( (This)->lpVtbl -> Picture(This,idx,x,y,w,h) ) + +#define ILayer_SetMappingMode(This,mode) \ + ( (This)->lpVtbl -> SetMappingMode(This,mode) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ILayer_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_Canvas; + +#ifdef __cplusplus + +class DECLSPEC_UUID("88197854-3CFF-4873-BE89-F508FC768ECD") +Canvas; +#endif + +#ifndef ___ILayerEvents_DISPINTERFACE_DEFINED__ +#define ___ILayerEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _ILayerEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__ILayerEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("21BB44A7-996C-4FEA-B32E-1E64FFB14A72") + _ILayerEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _ILayerEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _ILayerEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _ILayerEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _ILayerEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _ILayerEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _ILayerEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _ILayerEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _ILayerEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _ILayerEventsVtbl; + + interface _ILayerEvents + { + CONST_VTBL struct _ILayerEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _ILayerEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _ILayerEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _ILayerEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _ILayerEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _ILayerEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _ILayerEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _ILayerEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___ILayerEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __IForm_INTERFACE_DEFINED__ +#define __IForm_INTERFACE_DEFINED__ + +/* interface IForm */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IForm; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("28090FEE-0F7F-4909-99C4-80166D2BBB64") + IForm : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Control( + /* [in] */ VARIANT varNum, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LeftMargin( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LeftMargin( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RightMargin( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RightMargin( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetControlFont( + /* [in] */ VARIANT fontname, + /* [in] */ VARIANT fontsize) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Label( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Button( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckBox( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Edit( + /* [optional][in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClearControls( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ControlBreak( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ControlGroup( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RadioButton( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ControlPad( + /* [in] */ VARIANT width, + /* [optional][in] */ VARIANT height) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PasswordEdit( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReadonlyEdit( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckBox3state( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PushCheckButton( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PushRadioButton( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE StatusLabel( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ControlUseStaticEdge( + /* [in] */ VARIANT mode) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ListBox( + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MultiListBox( + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DropdownList( + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DropdownEdit( + /* [optional][in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TreeView( + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ListView( + /* [optional][in] */ VARIANT column, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EditListView( + /* [optional][in] */ VARIANT colum, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckListView( + /* [optional][in] */ VARIANT colum, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ControlColor( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ControlColor( + /* [in] */ long newVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IFormVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IForm * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IForm * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IForm * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IForm * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IForm * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IForm * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IForm * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Control )( + IForm * This, + /* [in] */ VARIANT varNum, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LeftMargin )( + IForm * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LeftMargin )( + IForm * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RightMargin )( + IForm * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RightMargin )( + IForm * This, + /* [in] */ short newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetControlFont )( + IForm * This, + /* [in] */ VARIANT fontname, + /* [in] */ VARIANT fontsize); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Label )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Button )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckBox )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Edit )( + IForm * This, + /* [optional][in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ClearControls )( + IForm * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ControlBreak )( + IForm * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ControlGroup )( + IForm * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RadioButton )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ControlPad )( + IForm * This, + /* [in] */ VARIANT width, + /* [optional][in] */ VARIANT height); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PasswordEdit )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReadonlyEdit )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckBox3state )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PushCheckButton )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PushRadioButton )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *StatusLabel )( + IForm * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ControlUseStaticEdge )( + IForm * This, + /* [in] */ VARIANT mode); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ListBox )( + IForm * This, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MultiListBox )( + IForm * This, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DropdownList )( + IForm * This, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DropdownEdit )( + IForm * This, + /* [optional][in] */ VARIANT text, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TreeView )( + IForm * This, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ListView )( + IForm * This, + /* [optional][in] */ VARIANT column, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EditListView )( + IForm * This, + /* [optional][in] */ VARIANT colum, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckListView )( + IForm * This, + /* [optional][in] */ VARIANT colum, + /* [optional][in] */ VARIANT width, + /* [optional][in] */ VARIANT height, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ControlColor )( + IForm * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ControlColor )( + IForm * This, + /* [in] */ long newVal); + + END_INTERFACE + } IFormVtbl; + + interface IForm + { + CONST_VTBL struct IFormVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IForm_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IForm_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IForm_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IForm_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IForm_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IForm_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IForm_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IForm_get_Control(This,varNum,pVal) \ + ( (This)->lpVtbl -> get_Control(This,varNum,pVal) ) + +#define IForm_get_LeftMargin(This,pVal) \ + ( (This)->lpVtbl -> get_LeftMargin(This,pVal) ) + +#define IForm_put_LeftMargin(This,newVal) \ + ( (This)->lpVtbl -> put_LeftMargin(This,newVal) ) + +#define IForm_get_RightMargin(This,pVal) \ + ( (This)->lpVtbl -> get_RightMargin(This,pVal) ) + +#define IForm_put_RightMargin(This,newVal) \ + ( (This)->lpVtbl -> put_RightMargin(This,newVal) ) + +#define IForm_SetControlFont(This,fontname,fontsize) \ + ( (This)->lpVtbl -> SetControlFont(This,fontname,fontsize) ) + +#define IForm_Label(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> Label(This,text,width,pvarUnk) ) + +#define IForm_Button(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> Button(This,text,width,pvarUnk) ) + +#define IForm_CheckBox(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> CheckBox(This,text,width,pvarUnk) ) + +#define IForm_Edit(This,text,width,height,pvarUnk) \ + ( (This)->lpVtbl -> Edit(This,text,width,height,pvarUnk) ) + +#define IForm_ClearControls(This) \ + ( (This)->lpVtbl -> ClearControls(This) ) + +#define IForm_ControlBreak(This) \ + ( (This)->lpVtbl -> ControlBreak(This) ) + +#define IForm_ControlGroup(This) \ + ( (This)->lpVtbl -> ControlGroup(This) ) + +#define IForm_RadioButton(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> RadioButton(This,text,width,pvarUnk) ) + +#define IForm_ControlPad(This,width,height) \ + ( (This)->lpVtbl -> ControlPad(This,width,height) ) + +#define IForm_PasswordEdit(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> PasswordEdit(This,text,width,pvarUnk) ) + +#define IForm_ReadonlyEdit(This,text,width,height,punkVal) \ + ( (This)->lpVtbl -> ReadonlyEdit(This,text,width,height,punkVal) ) + +#define IForm_CheckBox3state(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> CheckBox3state(This,text,width,pvarUnk) ) + +#define IForm_PushCheckButton(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> PushCheckButton(This,text,width,pvarUnk) ) + +#define IForm_PushRadioButton(This,text,width,pvarUnk) \ + ( (This)->lpVtbl -> PushRadioButton(This,text,width,pvarUnk) ) + +#define IForm_StatusLabel(This,text,width,height,pvarUnk) \ + ( (This)->lpVtbl -> StatusLabel(This,text,width,height,pvarUnk) ) + +#define IForm_ControlUseStaticEdge(This,mode) \ + ( (This)->lpVtbl -> ControlUseStaticEdge(This,mode) ) + +#define IForm_ListBox(This,width,height,pvarUnk) \ + ( (This)->lpVtbl -> ListBox(This,width,height,pvarUnk) ) + +#define IForm_MultiListBox(This,width,height,pvarUnk) \ + ( (This)->lpVtbl -> MultiListBox(This,width,height,pvarUnk) ) + +#define IForm_DropdownList(This,width,height,pvarUnk) \ + ( (This)->lpVtbl -> DropdownList(This,width,height,pvarUnk) ) + +#define IForm_DropdownEdit(This,text,width,height,pvarUnk) \ + ( (This)->lpVtbl -> DropdownEdit(This,text,width,height,pvarUnk) ) + +#define IForm_TreeView(This,width,height,pvarUnk) \ + ( (This)->lpVtbl -> TreeView(This,width,height,pvarUnk) ) + +#define IForm_ListView(This,column,width,height,pvarUnk) \ + ( (This)->lpVtbl -> ListView(This,column,width,height,pvarUnk) ) + +#define IForm_EditListView(This,colum,width,height,pvarUnk) \ + ( (This)->lpVtbl -> EditListView(This,colum,width,height,pvarUnk) ) + +#define IForm_CheckListView(This,colum,width,height,pvarUnk) \ + ( (This)->lpVtbl -> CheckListView(This,colum,width,height,pvarUnk) ) + +#define IForm_get_ControlColor(This,pVal) \ + ( (This)->lpVtbl -> get_ControlColor(This,pVal) ) + +#define IForm_put_ControlColor(This,newVal) \ + ( (This)->lpVtbl -> put_ControlColor(This,newVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IForm_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_Layer; + +#ifdef __cplusplus + +class DECLSPEC_UUID("AF8351BD-890F-470F-A33D-D7F78F8B8E9B") +Layer; +#endif + +#ifndef ___IFormEvents_DISPINTERFACE_DEFINED__ +#define ___IFormEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _IFormEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__IFormEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("46E2D67F-EC2B-46D1-A104-D6B358B79D79") + _IFormEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _IFormEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _IFormEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _IFormEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _IFormEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _IFormEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _IFormEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _IFormEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _IFormEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _IFormEventsVtbl; + + interface _IFormEvents + { + CONST_VTBL struct _IFormEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _IFormEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _IFormEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _IFormEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _IFormEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _IFormEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _IFormEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _IFormEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___IFormEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __IEvent_INTERFACE_DEFINED__ +#define __IEvent_INTERFACE_DEFINED__ + +/* interface IEvent */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IEvent; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("FBFFA998-55F3-4F27-B44E-2E764C33364D") + IEvent : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Message( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parameter( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PosX( + /* [retval][out] */ double *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PosY( + /* [retval][out] */ double *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_time( + /* [retval][out] */ DATE *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsMouseMove( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsClick( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsRClick( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsClickCancel( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsRClickCancel( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsClickOut( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsRClickOut( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsCommand( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsTimer( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsSize( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsExit( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsOK( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsCancel( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsDblClick( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsRDblClick( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExtParameter( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsContextMenu( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsContextDelete( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsKeydown( + /* [retval][out] */ BOOL *pResult) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DPosX( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DPosY( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsKeydown2( + /* [retval][out] */ BOOL *pResult) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IEventVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IEvent * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IEvent * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IEvent * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IEvent * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IEvent * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IEvent * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IEvent * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Message )( + IEvent * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parameter )( + IEvent * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PosX )( + IEvent * This, + /* [retval][out] */ double *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PosY )( + IEvent * This, + /* [retval][out] */ double *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_time )( + IEvent * This, + /* [retval][out] */ DATE *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsMouseMove )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsClick )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsRClick )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsClickCancel )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsRClickCancel )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsClickOut )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsRClickOut )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsCommand )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsTimer )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsSize )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsExit )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsOK )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsCancel )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsDblClick )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsRDblClick )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtParameter )( + IEvent * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsContextMenu )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsContextDelete )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsKeydown )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DPosX )( + IEvent * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DPosY )( + IEvent * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsKeydown2 )( + IEvent * This, + /* [retval][out] */ BOOL *pResult); + + END_INTERFACE + } IEventVtbl; + + interface IEvent + { + CONST_VTBL struct IEventVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IEvent_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IEvent_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IEvent_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IEvent_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IEvent_get_Message(This,pVal) \ + ( (This)->lpVtbl -> get_Message(This,pVal) ) + +#define IEvent_get_Parameter(This,pVal) \ + ( (This)->lpVtbl -> get_Parameter(This,pVal) ) + +#define IEvent_get_PosX(This,pVal) \ + ( (This)->lpVtbl -> get_PosX(This,pVal) ) + +#define IEvent_get_PosY(This,pVal) \ + ( (This)->lpVtbl -> get_PosY(This,pVal) ) + +#define IEvent_get_time(This,pVal) \ + ( (This)->lpVtbl -> get_time(This,pVal) ) + +#define IEvent_IsMouseMove(This,pResult) \ + ( (This)->lpVtbl -> IsMouseMove(This,pResult) ) + +#define IEvent_IsClick(This,pResult) \ + ( (This)->lpVtbl -> IsClick(This,pResult) ) + +#define IEvent_IsRClick(This,pResult) \ + ( (This)->lpVtbl -> IsRClick(This,pResult) ) + +#define IEvent_IsClickCancel(This,pResult) \ + ( (This)->lpVtbl -> IsClickCancel(This,pResult) ) + +#define IEvent_IsRClickCancel(This,pResult) \ + ( (This)->lpVtbl -> IsRClickCancel(This,pResult) ) + +#define IEvent_IsClickOut(This,pResult) \ + ( (This)->lpVtbl -> IsClickOut(This,pResult) ) + +#define IEvent_IsRClickOut(This,pResult) \ + ( (This)->lpVtbl -> IsRClickOut(This,pResult) ) + +#define IEvent_IsCommand(This,pResult) \ + ( (This)->lpVtbl -> IsCommand(This,pResult) ) + +#define IEvent_IsTimer(This,pResult) \ + ( (This)->lpVtbl -> IsTimer(This,pResult) ) + +#define IEvent_IsSize(This,pResult) \ + ( (This)->lpVtbl -> IsSize(This,pResult) ) + +#define IEvent_IsExit(This,pResult) \ + ( (This)->lpVtbl -> IsExit(This,pResult) ) + +#define IEvent_IsOK(This,pResult) \ + ( (This)->lpVtbl -> IsOK(This,pResult) ) + +#define IEvent_IsCancel(This,pResult) \ + ( (This)->lpVtbl -> IsCancel(This,pResult) ) + +#define IEvent_IsDblClick(This,pResult) \ + ( (This)->lpVtbl -> IsDblClick(This,pResult) ) + +#define IEvent_IsRDblClick(This,pResult) \ + ( (This)->lpVtbl -> IsRDblClick(This,pResult) ) + +#define IEvent_get_ExtParameter(This,pVal) \ + ( (This)->lpVtbl -> get_ExtParameter(This,pVal) ) + +#define IEvent_IsContextMenu(This,pResult) \ + ( (This)->lpVtbl -> IsContextMenu(This,pResult) ) + +#define IEvent_IsContextDelete(This,pResult) \ + ( (This)->lpVtbl -> IsContextDelete(This,pResult) ) + +#define IEvent_IsKeydown(This,pResult) \ + ( (This)->lpVtbl -> IsKeydown(This,pResult) ) + +#define IEvent_get_DPosX(This,pVal) \ + ( (This)->lpVtbl -> get_DPosX(This,pVal) ) + +#define IEvent_get_DPosY(This,pVal) \ + ( (This)->lpVtbl -> get_DPosY(This,pVal) ) + +#define IEvent_IsKeydown2(This,pResult) \ + ( (This)->lpVtbl -> IsKeydown2(This,pResult) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IEvent_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_Form; + +#ifdef __cplusplus + +class DECLSPEC_UUID("5869FF04-ED73-4EEC-BC48-29AADF4EFE61") +Form; +#endif + +#ifndef ___IEventEvents_DISPINTERFACE_DEFINED__ +#define ___IEventEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _IEventEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__IEventEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("EF80D99E-D8EB-4EE7-8868-C05578F23E4B") + _IEventEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _IEventEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _IEventEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _IEventEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _IEventEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _IEventEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _IEventEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _IEventEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _IEventEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _IEventEventsVtbl; + + interface _IEventEvents + { + CONST_VTBL struct _IEventEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _IEventEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _IEventEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _IEventEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _IEventEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _IEventEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _IEventEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _IEventEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___IEventEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __ISeraphyScriptTools_Instance_INTERFACE_DEFINED__ +#define __ISeraphyScriptTools_Instance_INTERFACE_DEFINED__ + +/* interface ISeraphyScriptTools_Instance */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ISeraphyScriptTools_Instance; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("80E13A41-FB92-4D5D-8042-1E556B681855") + ISeraphyScriptTools_Instance : public IDispatch + { + public: + virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( + /* [in] */ BSTR strCaption) = 0; + + virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( + /* [retval][out] */ BSTR *pstrCaption) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Dialog( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MainFrame( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateFrame( + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE WaitEvent( + /* [optional][in] */ VARIANT varTim, + /* [retval][out] */ VARIANT *pvarUnk) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WaitCursor( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_WaitCursor( + /* [in] */ short newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Keyboard( + /* [in] */ VARIANT vk, + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MousePosX( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_MousePosY( + /* [retval][out] */ short *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Version( + /* [retval][out] */ double *pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ISeraphyScriptTools_InstanceVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ISeraphyScriptTools_Instance * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ISeraphyScriptTools_Instance * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ISeraphyScriptTools_Instance * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ISeraphyScriptTools_Instance * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ISeraphyScriptTools_Instance * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ISeraphyScriptTools_Instance * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ISeraphyScriptTools_Instance * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( + ISeraphyScriptTools_Instance * This, + /* [in] */ BSTR strCaption); + + /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ BSTR *pstrCaption); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Dialog )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MainFrame )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateFrame )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *WaitEvent )( + ISeraphyScriptTools_Instance * This, + /* [optional][in] */ VARIANT varTim, + /* [retval][out] */ VARIANT *pvarUnk); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WaitCursor )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_WaitCursor )( + ISeraphyScriptTools_Instance * This, + /* [in] */ short newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Keyboard )( + ISeraphyScriptTools_Instance * This, + /* [in] */ VARIANT vk, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MousePosX )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MousePosY )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ short *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Version )( + ISeraphyScriptTools_Instance * This, + /* [retval][out] */ double *pVal); + + END_INTERFACE + } ISeraphyScriptTools_InstanceVtbl; + + interface ISeraphyScriptTools_Instance + { + CONST_VTBL struct ISeraphyScriptTools_InstanceVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ISeraphyScriptTools_Instance_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ISeraphyScriptTools_Instance_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ISeraphyScriptTools_Instance_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ISeraphyScriptTools_Instance_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ISeraphyScriptTools_Instance_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ISeraphyScriptTools_Instance_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ISeraphyScriptTools_Instance_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ISeraphyScriptTools_Instance_put_Caption(This,strCaption) \ + ( (This)->lpVtbl -> put_Caption(This,strCaption) ) + +#define ISeraphyScriptTools_Instance_get_Caption(This,pstrCaption) \ + ( (This)->lpVtbl -> get_Caption(This,pstrCaption) ) + +#define ISeraphyScriptTools_Instance_get_Dialog(This,pVal) \ + ( (This)->lpVtbl -> get_Dialog(This,pVal) ) + +#define ISeraphyScriptTools_Instance_get_MainFrame(This,pVal) \ + ( (This)->lpVtbl -> get_MainFrame(This,pVal) ) + +#define ISeraphyScriptTools_Instance_CreateFrame(This,pvarUnk) \ + ( (This)->lpVtbl -> CreateFrame(This,pvarUnk) ) + +#define ISeraphyScriptTools_Instance_WaitEvent(This,varTim,pvarUnk) \ + ( (This)->lpVtbl -> WaitEvent(This,varTim,pvarUnk) ) + +#define ISeraphyScriptTools_Instance_get_WaitCursor(This,pVal) \ + ( (This)->lpVtbl -> get_WaitCursor(This,pVal) ) + +#define ISeraphyScriptTools_Instance_put_WaitCursor(This,newVal) \ + ( (This)->lpVtbl -> put_WaitCursor(This,newVal) ) + +#define ISeraphyScriptTools_Instance_get_Keyboard(This,vk,pVal) \ + ( (This)->lpVtbl -> get_Keyboard(This,vk,pVal) ) + +#define ISeraphyScriptTools_Instance_get_MousePosX(This,pVal) \ + ( (This)->lpVtbl -> get_MousePosX(This,pVal) ) + +#define ISeraphyScriptTools_Instance_get_MousePosY(This,pVal) \ + ( (This)->lpVtbl -> get_MousePosY(This,pVal) ) + +#define ISeraphyScriptTools_Instance_get_Version(This,pVal) \ + ( (This)->lpVtbl -> get_Version(This,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ISeraphyScriptTools_Instance_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_Event; + +#ifdef __cplusplus + +class DECLSPEC_UUID("6E7538A4-2A3E-4631-BB79-6A9D923DB432") +Event; +#endif + +#ifndef ___ISeraphyScriptTools_InstanceEvents_DISPINTERFACE_DEFINED__ +#define ___ISeraphyScriptTools_InstanceEvents_DISPINTERFACE_DEFINED__ + +/* dispinterface _ISeraphyScriptTools_InstanceEvents */ +/* [helpstring][uuid] */ + + +EXTERN_C const IID DIID__ISeraphyScriptTools_InstanceEvents; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B63BD6A9-2157-4578-8138-895E34BDD5F0") + _ISeraphyScriptTools_InstanceEvents : public IDispatch + { + }; + +#else /* C style interface */ + + typedef struct _ISeraphyScriptTools_InstanceEventsVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + _ISeraphyScriptTools_InstanceEvents * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + _ISeraphyScriptTools_InstanceEvents * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + _ISeraphyScriptTools_InstanceEvents * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + _ISeraphyScriptTools_InstanceEvents * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + _ISeraphyScriptTools_InstanceEvents * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + _ISeraphyScriptTools_InstanceEvents * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + _ISeraphyScriptTools_InstanceEvents * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + END_INTERFACE + } _ISeraphyScriptTools_InstanceEventsVtbl; + + interface _ISeraphyScriptTools_InstanceEvents + { + CONST_VTBL struct _ISeraphyScriptTools_InstanceEventsVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define _ISeraphyScriptTools_InstanceEvents_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define _ISeraphyScriptTools_InstanceEvents_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define _ISeraphyScriptTools_InstanceEvents_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define _ISeraphyScriptTools_InstanceEvents_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define _ISeraphyScriptTools_InstanceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define _ISeraphyScriptTools_InstanceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define _ISeraphyScriptTools_InstanceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + +#endif /* ___ISeraphyScriptTools_InstanceEvents_DISPINTERFACE_DEFINED__ */ + + +#ifndef __ITreeItem_INTERFACE_DEFINED__ +#define __ITreeItem_INTERFACE_DEFINED__ + +/* interface ITreeItem */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ITreeItem; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("12DA362D-72CE-4BB9-981F-B46B90DAE9AF") + ITreeItem : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( + /* [retval][out] */ IUnknown **pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ChildItem( + /* [retval][out] */ IUnknown **pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NextItem( + /* [retval][out] */ IUnknown **pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PrevItem( + /* [retval][out] */ IUnknown **pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Text( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Text( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Object( + /* [optional][in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Create( + /* [in] */ VARIANT text, + /* [retval][out] */ IUnknown **punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Erase( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Select( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Expand( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Sort( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsValid( + /* [retval][out] */ BOOL *pResult) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ITreeItemVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ITreeItem * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ITreeItem * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ITreeItem * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ITreeItem * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ITreeItem * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ITreeItem * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ITreeItem * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( + ITreeItem * This, + /* [retval][out] */ IUnknown **pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ChildItem )( + ITreeItem * This, + /* [retval][out] */ IUnknown **pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NextItem )( + ITreeItem * This, + /* [retval][out] */ IUnknown **pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PrevItem )( + ITreeItem * This, + /* [retval][out] */ IUnknown **pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Text )( + ITreeItem * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Text )( + ITreeItem * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Object )( + ITreeItem * This, + /* [optional][in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Create )( + ITreeItem * This, + /* [in] */ VARIANT text, + /* [retval][out] */ IUnknown **punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( + ITreeItem * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Select )( + ITreeItem * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Expand )( + ITreeItem * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Sort )( + ITreeItem * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsValid )( + ITreeItem * This, + /* [retval][out] */ BOOL *pResult); + + END_INTERFACE + } ITreeItemVtbl; + + interface ITreeItem + { + CONST_VTBL struct ITreeItemVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ITreeItem_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ITreeItem_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ITreeItem_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ITreeItem_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ITreeItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ITreeItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ITreeItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ITreeItem_get_Parent(This,pVal) \ + ( (This)->lpVtbl -> get_Parent(This,pVal) ) + +#define ITreeItem_get_ChildItem(This,pVal) \ + ( (This)->lpVtbl -> get_ChildItem(This,pVal) ) + +#define ITreeItem_get_NextItem(This,pVal) \ + ( (This)->lpVtbl -> get_NextItem(This,pVal) ) + +#define ITreeItem_get_PrevItem(This,pVal) \ + ( (This)->lpVtbl -> get_PrevItem(This,pVal) ) + +#define ITreeItem_get_Text(This,pVal) \ + ( (This)->lpVtbl -> get_Text(This,pVal) ) + +#define ITreeItem_put_Text(This,newVal) \ + ( (This)->lpVtbl -> put_Text(This,newVal) ) + +#define ITreeItem_get_Object(This,idx,pVal) \ + ( (This)->lpVtbl -> get_Object(This,idx,pVal) ) + +#define ITreeItem_Create(This,text,punkVal) \ + ( (This)->lpVtbl -> Create(This,text,punkVal) ) + +#define ITreeItem_Erase(This) \ + ( (This)->lpVtbl -> Erase(This) ) + +#define ITreeItem_Select(This) \ + ( (This)->lpVtbl -> Select(This) ) + +#define ITreeItem_Expand(This) \ + ( (This)->lpVtbl -> Expand(This) ) + +#define ITreeItem_Sort(This) \ + ( (This)->lpVtbl -> Sort(This) ) + +#define ITreeItem_IsValid(This,pResult) \ + ( (This)->lpVtbl -> IsValid(This,pResult) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ITreeItem_INTERFACE_DEFINED__ */ + + +#ifndef __IObjectMap_INTERFACE_DEFINED__ +#define __IObjectMap_INTERFACE_DEFINED__ + +/* interface IObjectMap */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IObjectMap; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("E911BCA5-E5CA-4A49-9A48-9F6D933B5DCC") + IObjectMap : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( + /* [in] */ VARIANT key, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( + /* [in] */ VARIANT key, + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Duplicate( + /* [retval][out] */ IUnknown **punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateMap( + /* [retval][out] */ IUnknown **punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FindNear( + /* [in] */ VARIANT key, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NearValue( + /* [in] */ VARIANT key, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExpandVariables( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT env, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsExist( + /* [in] */ VARIANT key, + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Erase( + /* [in] */ VARIANT key) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadProfile( + /* [in] */ IUnknown *punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveProfile( + /* [in] */ IUnknown *punkVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( + /* [retval][out] */ IUnknown **pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IObjectMapVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IObjectMap * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IObjectMap * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IObjectMap * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IObjectMap * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IObjectMap * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IObjectMap * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IObjectMap * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( + IObjectMap * This, + /* [in] */ VARIANT key, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( + IObjectMap * This, + /* [in] */ VARIANT key, + /* [in] */ VARIANT newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( + IObjectMap * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( + IObjectMap * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Duplicate )( + IObjectMap * This, + /* [retval][out] */ IUnknown **punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateMap )( + IObjectMap * This, + /* [retval][out] */ IUnknown **punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FindNear )( + IObjectMap * This, + /* [in] */ VARIANT key, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NearValue )( + IObjectMap * This, + /* [in] */ VARIANT key, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExpandVariables )( + IObjectMap * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT env, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsExist )( + IObjectMap * This, + /* [in] */ VARIANT key, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( + IObjectMap * This, + /* [in] */ VARIANT key); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadProfile )( + IObjectMap * This, + /* [in] */ IUnknown *punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveProfile )( + IObjectMap * This, + /* [in] */ IUnknown *punkVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( + IObjectMap * This, + /* [retval][out] */ IUnknown **pVal); + + END_INTERFACE + } IObjectMapVtbl; + + interface IObjectMap + { + CONST_VTBL struct IObjectMapVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IObjectMap_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IObjectMap_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IObjectMap_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IObjectMap_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IObjectMap_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IObjectMap_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IObjectMap_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IObjectMap_get_Value(This,key,pVal) \ + ( (This)->lpVtbl -> get_Value(This,key,pVal) ) + +#define IObjectMap_put_Value(This,key,newVal) \ + ( (This)->lpVtbl -> put_Value(This,key,newVal) ) + +#define IObjectMap_get_Count(This,pVal) \ + ( (This)->lpVtbl -> get_Count(This,pVal) ) + +#define IObjectMap_Clear(This) \ + ( (This)->lpVtbl -> Clear(This) ) + +#define IObjectMap_Duplicate(This,punkVal) \ + ( (This)->lpVtbl -> Duplicate(This,punkVal) ) + +#define IObjectMap_CreateMap(This,punkVal) \ + ( (This)->lpVtbl -> CreateMap(This,punkVal) ) + +#define IObjectMap_FindNear(This,key,pVal) \ + ( (This)->lpVtbl -> FindNear(This,key,pVal) ) + +#define IObjectMap_get_NearValue(This,key,pVal) \ + ( (This)->lpVtbl -> get_NearValue(This,key,pVal) ) + +#define IObjectMap_ExpandVariables(This,text,env,pVal) \ + ( (This)->lpVtbl -> ExpandVariables(This,text,env,pVal) ) + +#define IObjectMap_get_IsExist(This,key,pVal) \ + ( (This)->lpVtbl -> get_IsExist(This,key,pVal) ) + +#define IObjectMap_Erase(This,key) \ + ( (This)->lpVtbl -> Erase(This,key) ) + +#define IObjectMap_LoadProfile(This,punkVal) \ + ( (This)->lpVtbl -> LoadProfile(This,punkVal) ) + +#define IObjectMap_SaveProfile(This,punkVal) \ + ( (This)->lpVtbl -> SaveProfile(This,punkVal) ) + +#define IObjectMap_get__NewEnum(This,pVal) \ + ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IObjectMap_INTERFACE_DEFINED__ */ + + +#ifndef __ISeraphyScriptTools_Shell_INTERFACE_DEFINED__ +#define __ISeraphyScriptTools_Shell_INTERFACE_DEFINED__ + +/* interface ISeraphyScriptTools_Shell */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ISeraphyScriptTools_Shell; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("F8B84F95-7454-463B-BDC4-DE3EB9A96550") + ISeraphyScriptTools_Shell : public IDispatch + { + public: + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShellExecute( + /* [in] */ VARIANT path, + /* [optional][in] */ VARIANT param, + /* [optional][in] */ VARIANT initdir, + /* [optional][in] */ VARIANT mode, + /* [retval][out] */ VARIANT *punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSpecialFolderLocations( + /* [in] */ IUnknown *punkVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsWindowNT( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_WindowsVersion( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDLLVersion( + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT min, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ParseName( + /* [optional][in] */ VARIANT text, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Copy( + /* [in] */ VARIANT from, + /* [in] */ VARIANT to, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CopyRenameOnCollision( + /* [in] */ VARIANT from, + /* [in] */ VARIANT to, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Move( + /* [in] */ VARIANT from, + /* [in] */ VARIANT to, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Delete( + /* [in] */ VARIANT from, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Confirm( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Confirm( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Silent( + /* [retval][out] */ BOOL *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Silent( + /* [in] */ BOOL newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EmptyRecycleBin( + /* [optional][in] */ VARIANT dir) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RecentDocs( + /* [optional][in] */ VARIANT text) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMainWindow( + /* [in] */ VARIANT varUnk) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IsExist( + /* [in] */ VARIANT name, + /* [retval][out] */ VARIANT *pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ISeraphyScriptTools_ShellVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ISeraphyScriptTools_Shell * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ISeraphyScriptTools_Shell * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ISeraphyScriptTools_Shell * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ISeraphyScriptTools_Shell * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ISeraphyScriptTools_Shell * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ISeraphyScriptTools_Shell * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ISeraphyScriptTools_Shell * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShellExecute )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT path, + /* [optional][in] */ VARIANT param, + /* [optional][in] */ VARIANT initdir, + /* [optional][in] */ VARIANT mode, + /* [retval][out] */ VARIANT *punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSpecialFolderLocations )( + ISeraphyScriptTools_Shell * This, + /* [in] */ IUnknown *punkVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsWindowNT )( + ISeraphyScriptTools_Shell * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WindowsVersion )( + ISeraphyScriptTools_Shell * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDLLVersion )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT text, + /* [optional][in] */ VARIANT min, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ParseName )( + ISeraphyScriptTools_Shell * This, + /* [optional][in] */ VARIANT text, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Copy )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT from, + /* [in] */ VARIANT to, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CopyRenameOnCollision )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT from, + /* [in] */ VARIANT to, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Move )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT from, + /* [in] */ VARIANT to, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Delete )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT from, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Confirm )( + ISeraphyScriptTools_Shell * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Confirm )( + ISeraphyScriptTools_Shell * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Silent )( + ISeraphyScriptTools_Shell * This, + /* [retval][out] */ BOOL *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Silent )( + ISeraphyScriptTools_Shell * This, + /* [in] */ BOOL newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EmptyRecycleBin )( + ISeraphyScriptTools_Shell * This, + /* [optional][in] */ VARIANT dir); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RecentDocs )( + ISeraphyScriptTools_Shell * This, + /* [optional][in] */ VARIANT text); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMainWindow )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT varUnk); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *IsExist )( + ISeraphyScriptTools_Shell * This, + /* [in] */ VARIANT name, + /* [retval][out] */ VARIANT *pVal); + + END_INTERFACE + } ISeraphyScriptTools_ShellVtbl; + + interface ISeraphyScriptTools_Shell + { + CONST_VTBL struct ISeraphyScriptTools_ShellVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ISeraphyScriptTools_Shell_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ISeraphyScriptTools_Shell_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ISeraphyScriptTools_Shell_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ISeraphyScriptTools_Shell_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ISeraphyScriptTools_Shell_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ISeraphyScriptTools_Shell_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ISeraphyScriptTools_Shell_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ISeraphyScriptTools_Shell_ShellExecute(This,path,param,initdir,mode,punkVal) \ + ( (This)->lpVtbl -> ShellExecute(This,path,param,initdir,mode,punkVal) ) + +#define ISeraphyScriptTools_Shell_GetSpecialFolderLocations(This,punkVal) \ + ( (This)->lpVtbl -> GetSpecialFolderLocations(This,punkVal) ) + +#define ISeraphyScriptTools_Shell_get_IsWindowNT(This,pVal) \ + ( (This)->lpVtbl -> get_IsWindowNT(This,pVal) ) + +#define ISeraphyScriptTools_Shell_get_WindowsVersion(This,pVal) \ + ( (This)->lpVtbl -> get_WindowsVersion(This,pVal) ) + +#define ISeraphyScriptTools_Shell_GetDLLVersion(This,text,min,pVal) \ + ( (This)->lpVtbl -> GetDLLVersion(This,text,min,pVal) ) + +#define ISeraphyScriptTools_Shell_ParseName(This,text,pVal) \ + ( (This)->lpVtbl -> ParseName(This,text,pVal) ) + +#define ISeraphyScriptTools_Shell_Copy(This,from,to,pVal) \ + ( (This)->lpVtbl -> Copy(This,from,to,pVal) ) + +#define ISeraphyScriptTools_Shell_CopyRenameOnCollision(This,from,to,pVal) \ + ( (This)->lpVtbl -> CopyRenameOnCollision(This,from,to,pVal) ) + +#define ISeraphyScriptTools_Shell_Move(This,from,to,pVal) \ + ( (This)->lpVtbl -> Move(This,from,to,pVal) ) + +#define ISeraphyScriptTools_Shell_Delete(This,from,pVal) \ + ( (This)->lpVtbl -> Delete(This,from,pVal) ) + +#define ISeraphyScriptTools_Shell_get_Confirm(This,pVal) \ + ( (This)->lpVtbl -> get_Confirm(This,pVal) ) + +#define ISeraphyScriptTools_Shell_put_Confirm(This,newVal) \ + ( (This)->lpVtbl -> put_Confirm(This,newVal) ) + +#define ISeraphyScriptTools_Shell_get_Silent(This,pVal) \ + ( (This)->lpVtbl -> get_Silent(This,pVal) ) + +#define ISeraphyScriptTools_Shell_put_Silent(This,newVal) \ + ( (This)->lpVtbl -> put_Silent(This,newVal) ) + +#define ISeraphyScriptTools_Shell_EmptyRecycleBin(This,dir) \ + ( (This)->lpVtbl -> EmptyRecycleBin(This,dir) ) + +#define ISeraphyScriptTools_Shell_RecentDocs(This,text) \ + ( (This)->lpVtbl -> RecentDocs(This,text) ) + +#define ISeraphyScriptTools_Shell_SetMainWindow(This,varUnk) \ + ( (This)->lpVtbl -> SetMainWindow(This,varUnk) ) + +#define ISeraphyScriptTools_Shell_IsExist(This,name,pVal) \ + ( (This)->lpVtbl -> IsExist(This,name,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ISeraphyScriptTools_Shell_INTERFACE_DEFINED__ */ + + +#ifndef __IShellExecObj_INTERFACE_DEFINED__ +#define __IShellExecObj_INTERFACE_DEFINED__ + +/* interface IShellExecObj */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IShellExecObj; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("690ED5D8-DBA9-4982-9E6E-C8B69342C47E") + IShellExecObj : public IDispatch + { + public: + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Wait( + /* [optional][in] */ VARIANT tim, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ExitCode( + /* [retval][out] */ long *pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IShellExecObjVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IShellExecObj * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IShellExecObj * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IShellExecObj * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IShellExecObj * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IShellExecObj * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IShellExecObj * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IShellExecObj * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Wait )( + IShellExecObj * This, + /* [optional][in] */ VARIANT tim, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExitCode )( + IShellExecObj * This, + /* [retval][out] */ long *pVal); + + END_INTERFACE + } IShellExecObjVtbl; + + interface IShellExecObj + { + CONST_VTBL struct IShellExecObjVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IShellExecObj_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IShellExecObj_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IShellExecObj_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IShellExecObj_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IShellExecObj_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IShellExecObj_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IShellExecObj_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IShellExecObj_Wait(This,tim,pVal) \ + ( (This)->lpVtbl -> Wait(This,tim,pVal) ) + +#define IShellExecObj_get_ExitCode(This,pVal) \ + ( (This)->lpVtbl -> get_ExitCode(This,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IShellExecObj_INTERFACE_DEFINED__ */ + + +#ifndef __IObjectVector_INTERFACE_DEFINED__ +#define __IObjectVector_INTERFACE_DEFINED__ + +/* interface IObjectVector */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IObjectVector; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("C9C4F4B0-BE0D-481F-889A-0CCF249494F7") + IObjectVector : public IDispatch + { + public: + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateVector( + /* [retval][out] */ IUnknown **punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Duplicate( + /* [optional][in] */ VARIANT idx, + /* [optional][in] */ VARIANT count, + /* [retval][out] */ IUnknown **punkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Erase( + /* [in] */ VARIANT start, + /* [optional][in] */ VARIANT count) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Push( + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Pop( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Insert( + /* [in] */ VARIANT idx, + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( + /* [optional][in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( + /* [optional][in] */ VARIANT idx, + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( + /* [retval][out] */ long *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Merge( + /* [in] */ VARIANT unkVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MakeArray( + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( + /* [retval][out] */ IUnknown **pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IObjectVectorVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IObjectVector * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IObjectVector * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IObjectVector * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IObjectVector * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IObjectVector * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IObjectVector * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IObjectVector * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateVector )( + IObjectVector * This, + /* [retval][out] */ IUnknown **punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Duplicate )( + IObjectVector * This, + /* [optional][in] */ VARIANT idx, + /* [optional][in] */ VARIANT count, + /* [retval][out] */ IUnknown **punkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( + IObjectVector * This); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Erase )( + IObjectVector * This, + /* [in] */ VARIANT start, + /* [optional][in] */ VARIANT count); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Push )( + IObjectVector * This, + /* [in] */ VARIANT newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Pop )( + IObjectVector * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Insert )( + IObjectVector * This, + /* [in] */ VARIANT idx, + /* [in] */ VARIANT newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( + IObjectVector * This, + /* [optional][in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( + IObjectVector * This, + /* [optional][in] */ VARIANT idx, + /* [in] */ VARIANT newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( + IObjectVector * This, + /* [retval][out] */ long *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Merge )( + IObjectVector * This, + /* [in] */ VARIANT unkVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MakeArray )( + IObjectVector * This, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( + IObjectVector * This, + /* [retval][out] */ IUnknown **pVal); + + END_INTERFACE + } IObjectVectorVtbl; + + interface IObjectVector + { + CONST_VTBL struct IObjectVectorVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IObjectVector_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IObjectVector_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IObjectVector_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IObjectVector_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IObjectVector_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IObjectVector_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IObjectVector_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IObjectVector_CreateVector(This,punkVal) \ + ( (This)->lpVtbl -> CreateVector(This,punkVal) ) + +#define IObjectVector_Duplicate(This,idx,count,punkVal) \ + ( (This)->lpVtbl -> Duplicate(This,idx,count,punkVal) ) + +#define IObjectVector_Clear(This) \ + ( (This)->lpVtbl -> Clear(This) ) + +#define IObjectVector_Erase(This,start,count) \ + ( (This)->lpVtbl -> Erase(This,start,count) ) + +#define IObjectVector_Push(This,newVal) \ + ( (This)->lpVtbl -> Push(This,newVal) ) + +#define IObjectVector_Pop(This,pVal) \ + ( (This)->lpVtbl -> Pop(This,pVal) ) + +#define IObjectVector_Insert(This,idx,newVal) \ + ( (This)->lpVtbl -> Insert(This,idx,newVal) ) + +#define IObjectVector_get_Value(This,idx,pVal) \ + ( (This)->lpVtbl -> get_Value(This,idx,pVal) ) + +#define IObjectVector_put_Value(This,idx,newVal) \ + ( (This)->lpVtbl -> put_Value(This,idx,newVal) ) + +#define IObjectVector_get_Count(This,pVal) \ + ( (This)->lpVtbl -> get_Count(This,pVal) ) + +#define IObjectVector_Merge(This,unkVal) \ + ( (This)->lpVtbl -> Merge(This,unkVal) ) + +#define IObjectVector_MakeArray(This,pVal) \ + ( (This)->lpVtbl -> MakeArray(This,pVal) ) + +#define IObjectVector_get__NewEnum(This,pVal) \ + ( (This)->lpVtbl -> get__NewEnum(This,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IObjectVector_INTERFACE_DEFINED__ */ + + +#ifndef __ISeraphyScriptTools_ProfileSection_INTERFACE_DEFINED__ +#define __ISeraphyScriptTools_ProfileSection_INTERFACE_DEFINED__ + +/* interface ISeraphyScriptTools_ProfileSection */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ISeraphyScriptTools_ProfileSection; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("8402BE8E-3972-42F4-BEE3-2717CDC51949") + ISeraphyScriptTools_ProfileSection : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( + /* [in] */ VARIANT idx, + /* [in] */ VARIANT newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetValue( + /* [in] */ VARIANT idx, + /* [optional][in] */ VARIANT def, + /* [retval][out] */ VARIANT *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetKeyNames( + /* [retval][out] */ VARIANT *pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ISeraphyScriptTools_ProfileSectionVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ISeraphyScriptTools_ProfileSection * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ISeraphyScriptTools_ProfileSection * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ISeraphyScriptTools_ProfileSection * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ISeraphyScriptTools_ProfileSection * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ISeraphyScriptTools_ProfileSection * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ISeraphyScriptTools_ProfileSection * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ISeraphyScriptTools_ProfileSection * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( + ISeraphyScriptTools_ProfileSection * This, + /* [in] */ VARIANT idx, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( + ISeraphyScriptTools_ProfileSection * This, + /* [in] */ VARIANT idx, + /* [in] */ VARIANT newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetValue )( + ISeraphyScriptTools_ProfileSection * This, + /* [in] */ VARIANT idx, + /* [optional][in] */ VARIANT def, + /* [retval][out] */ VARIANT *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetKeyNames )( + ISeraphyScriptTools_ProfileSection * This, + /* [retval][out] */ VARIANT *pVal); + + END_INTERFACE + } ISeraphyScriptTools_ProfileSectionVtbl; + + interface ISeraphyScriptTools_ProfileSection + { + CONST_VTBL struct ISeraphyScriptTools_ProfileSectionVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ISeraphyScriptTools_ProfileSection_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ISeraphyScriptTools_ProfileSection_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ISeraphyScriptTools_ProfileSection_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ISeraphyScriptTools_ProfileSection_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ISeraphyScriptTools_ProfileSection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ISeraphyScriptTools_ProfileSection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ISeraphyScriptTools_ProfileSection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ISeraphyScriptTools_ProfileSection_get_Value(This,idx,pVal) \ + ( (This)->lpVtbl -> get_Value(This,idx,pVal) ) + +#define ISeraphyScriptTools_ProfileSection_put_Value(This,idx,newVal) \ + ( (This)->lpVtbl -> put_Value(This,idx,newVal) ) + +#define ISeraphyScriptTools_ProfileSection_GetValue(This,idx,def,pVal) \ + ( (This)->lpVtbl -> GetValue(This,idx,def,pVal) ) + +#define ISeraphyScriptTools_ProfileSection_GetKeyNames(This,pVal) \ + ( (This)->lpVtbl -> GetKeyNames(This,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ISeraphyScriptTools_ProfileSection_INTERFACE_DEFINED__ */ + + +#ifndef __ISeraphyScriptTool_ParseName_INTERFACE_DEFINED__ +#define __ISeraphyScriptTool_ParseName_INTERFACE_DEFINED__ + +/* interface ISeraphyScriptTool_ParseName */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_ISeraphyScriptTool_ParseName; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("26F24F9B-3FFF-49BC-9D87-A46469D90DCA") + ISeraphyScriptTool_ParseName : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PathName( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_PathName( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileName( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Extention( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Extention( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Drive( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Drive( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Directory( + /* [retval][out] */ BSTR *pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ISeraphyScriptTool_ParseNameVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ISeraphyScriptTool_ParseName * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ISeraphyScriptTool_ParseName * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + ISeraphyScriptTool_ParseName * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + ISeraphyScriptTool_ParseName * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PathName )( + ISeraphyScriptTool_ParseName * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PathName )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FileName )( + ISeraphyScriptTool_ParseName * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FileName )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Extention )( + ISeraphyScriptTool_ParseName * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Extention )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( + ISeraphyScriptTool_ParseName * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Drive )( + ISeraphyScriptTool_ParseName * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Drive )( + ISeraphyScriptTool_ParseName * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Directory )( + ISeraphyScriptTool_ParseName * This, + /* [retval][out] */ BSTR *pVal); + + END_INTERFACE + } ISeraphyScriptTool_ParseNameVtbl; + + interface ISeraphyScriptTool_ParseName + { + CONST_VTBL struct ISeraphyScriptTool_ParseNameVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ISeraphyScriptTool_ParseName_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ISeraphyScriptTool_ParseName_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ISeraphyScriptTool_ParseName_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ISeraphyScriptTool_ParseName_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define ISeraphyScriptTool_ParseName_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define ISeraphyScriptTool_ParseName_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define ISeraphyScriptTool_ParseName_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define ISeraphyScriptTool_ParseName_get_PathName(This,pVal) \ + ( (This)->lpVtbl -> get_PathName(This,pVal) ) + +#define ISeraphyScriptTool_ParseName_put_PathName(This,newVal) \ + ( (This)->lpVtbl -> put_PathName(This,newVal) ) + +#define ISeraphyScriptTool_ParseName_get_FileName(This,pVal) \ + ( (This)->lpVtbl -> get_FileName(This,pVal) ) + +#define ISeraphyScriptTool_ParseName_put_FileName(This,newVal) \ + ( (This)->lpVtbl -> put_FileName(This,newVal) ) + +#define ISeraphyScriptTool_ParseName_get_Extention(This,pVal) \ + ( (This)->lpVtbl -> get_Extention(This,pVal) ) + +#define ISeraphyScriptTool_ParseName_put_Extention(This,newVal) \ + ( (This)->lpVtbl -> put_Extention(This,newVal) ) + +#define ISeraphyScriptTool_ParseName_get_Name(This,pVal) \ + ( (This)->lpVtbl -> get_Name(This,pVal) ) + +#define ISeraphyScriptTool_ParseName_put_Name(This,newVal) \ + ( (This)->lpVtbl -> put_Name(This,newVal) ) + +#define ISeraphyScriptTool_ParseName_get_Drive(This,pVal) \ + ( (This)->lpVtbl -> get_Drive(This,pVal) ) + +#define ISeraphyScriptTool_ParseName_put_Drive(This,newVal) \ + ( (This)->lpVtbl -> put_Drive(This,newVal) ) + +#define ISeraphyScriptTool_ParseName_get_Directory(This,pVal) \ + ( (This)->lpVtbl -> get_Directory(This,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ISeraphyScriptTool_ParseName_INTERFACE_DEFINED__ */ + + +#ifndef __IPrivateProfile_INTERFACE_DEFINED__ +#define __IPrivateProfile_INTERFACE_DEFINED__ + +/* interface IPrivateProfile */ +/* [unique][helpstring][dual][uuid][object] */ + + +EXTERN_C const IID IID_IPrivateProfile; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("B95767D2-7FFF-4709-9938-A64A558855DE") + IPrivateProfile : public IDispatch + { + public: + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ProfilePath( + /* [retval][out] */ BSTR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ProfilePath( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenSection( + /* [in] */ VARIANT text, + /* [retval][out] */ VARIANT *pVal) = 0; + + }; + + +#else /* C style interface */ + + typedef struct IPrivateProfileVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + IPrivateProfile * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + IPrivateProfile * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + IPrivateProfile * This); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( + IPrivateProfile * This, + /* [out] */ UINT *pctinfo); + + HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( + IPrivateProfile * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo **ppTInfo); + + HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( + IPrivateProfile * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR *rgszNames, + /* [range][in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( + IPrivateProfile * This, + /* [annotation][in] */ + _In_ DISPID dispIdMember, + /* [annotation][in] */ + _In_ REFIID riid, + /* [annotation][in] */ + _In_ LCID lcid, + /* [annotation][in] */ + _In_ WORD wFlags, + /* [annotation][out][in] */ + _In_ DISPPARAMS *pDispParams, + /* [annotation][out] */ + _Out_opt_ VARIANT *pVarResult, + /* [annotation][out] */ + _Out_opt_ EXCEPINFO *pExcepInfo, + /* [annotation][out] */ + _Out_opt_ UINT *puArgErr); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProfilePath )( + IPrivateProfile * This, + /* [retval][out] */ BSTR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ProfilePath )( + IPrivateProfile * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenSection )( + IPrivateProfile * This, + /* [in] */ VARIANT text, + /* [retval][out] */ VARIANT *pVal); + + END_INTERFACE + } IPrivateProfileVtbl; + + interface IPrivateProfile + { + CONST_VTBL struct IPrivateProfileVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define IPrivateProfile_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define IPrivateProfile_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define IPrivateProfile_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define IPrivateProfile_GetTypeInfoCount(This,pctinfo) \ + ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) + +#define IPrivateProfile_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) + +#define IPrivateProfile_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) + +#define IPrivateProfile_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) + + +#define IPrivateProfile_get_ProfilePath(This,pVal) \ + ( (This)->lpVtbl -> get_ProfilePath(This,pVal) ) + +#define IPrivateProfile_put_ProfilePath(This,newVal) \ + ( (This)->lpVtbl -> put_ProfilePath(This,newVal) ) + +#define IPrivateProfile_OpenSection(This,text,pVal) \ + ( (This)->lpVtbl -> OpenSection(This,text,pVal) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __IPrivateProfile_INTERFACE_DEFINED__ */ + + +EXTERN_C const CLSID CLSID_SeraphyScriptTools_Instance; + +#ifdef __cplusplus + +class DECLSPEC_UUID("D952EC87-3C30-46CC-879E-06AC42A006BC") +SeraphyScriptTools_Instance; +#endif + +EXTERN_C const CLSID CLSID_TreeItem; + +#ifdef __cplusplus + +class DECLSPEC_UUID("300F33B2-A6C8-4712-A818-52964AAC531B") +TreeItem; +#endif + +EXTERN_C const CLSID CLSID_ObjectMap; + +#ifdef __cplusplus + +class DECLSPEC_UUID("E368625A-EE53-43BA-8433-B7FE6E995DEA") +ObjectMap; +#endif + +EXTERN_C const CLSID CLSID_SeraphyScriptTools_Shell; + +#ifdef __cplusplus + +class DECLSPEC_UUID("A1F18502-8397-4586-AE93-8F6384056403") +SeraphyScriptTools_Shell; +#endif + +EXTERN_C const CLSID CLSID_ShellExecObj; + +#ifdef __cplusplus + +class DECLSPEC_UUID("B7168409-78F6-4C7A-A7E6-15D978B65634") +ShellExecObj; +#endif + +EXTERN_C const CLSID CLSID_ObjectVector; + +#ifdef __cplusplus + +class DECLSPEC_UUID("FFA411CA-1872-4A89-92F2-A7EBCBB83241") +ObjectVector; +#endif + +EXTERN_C const CLSID CLSID_ProfileSection; + +#ifdef __cplusplus + +class DECLSPEC_UUID("E6DE44A6-32C5-4818-99FB-45BB5E6DB1FF") +ProfileSection; +#endif + +EXTERN_C const CLSID CLSID_ParseName; + +#ifdef __cplusplus + +class DECLSPEC_UUID("43AB6371-EFA9-4C25-897A-6D6249872022") +ParseName; +#endif + +EXTERN_C const CLSID CLSID_PrivateProfile; + +#ifdef __cplusplus + +class DECLSPEC_UUID("A1DADEC9-00B3-4D99-8D4A-17779E94A8AA") +PrivateProfile; +#endif +#endif /* __SERAPHYSCRIPTTOOLSLib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); +unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); +unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); +void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * ); + +unsigned long __RPC_USER VARIANT_UserSize( unsigned long *, unsigned long , VARIANT * ); +unsigned char * __RPC_USER VARIANT_UserMarshal( unsigned long *, unsigned char *, VARIANT * ); +unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); +void __RPC_USER VARIANT_UserFree( unsigned long *, VARIANT * ); + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/SeraphyScriptTools.idl b/SeraphyScriptTools.idl new file mode 100644 index 0000000..6724c39 --- /dev/null +++ b/SeraphyScriptTools.idl @@ -0,0 +1,795 @@ +// SeraphyScriptTools.idl : SeraphyScriptTools.dll —p‚Ì IDL ƒ\[ƒX ƒtƒ@ƒCƒ‹ +// + +// ‚±‚̃tƒ@ƒCƒ‹‚̓^ƒCƒv ƒ‰ƒCƒuƒ‰ƒŠ (SeraphyScriptTools.tlb) ‚ðì¬‚·‚邽‚ß‚É +// ƒ^ƒCƒv ƒ‰ƒCƒuƒ‰ƒŠì¬ƒc[ƒ‹ MIDL ‚É‚æ‚Á‚ďˆ—‚³‚ê‚Ü‚·B + +import "oaidl.idl"; +import "ocidl.idl"; +#include "olectl.h" + + + [ + object, + uuid(112D2DFC-DC6E-4EEB-B7AE-9A29C293090B), + dual, + helpstring("ICommDialog Interface"), + pointer_default(unique) + ] + interface ICommDialog : IDispatch + { + [propget, id(10), helpstring("ÌßÛÊßè OpenFileCaption")] HRESULT OpenFileCaption([out, retval] BSTR *pVal); + [propput, id(10), helpstring("ÌßÛÊßè OpenFileCaption")] HRESULT OpenFileCaption([in] BSTR newVal); + [propget, id(11), helpstring("ÌßÛÊßè SaveFileCaption")] HRESULT SaveFileCaption([out, retval] BSTR *pVal); + [propput, id(11), helpstring("ÌßÛÊßè SaveFileCaption")] HRESULT SaveFileCaption([in] BSTR newVal); + [propget, id(12), helpstring("ÌßÛÊßè EnableCreatePrompt")] HRESULT EnableCreatePrompt([out, retval] BOOL *pVal); + [propput, id(12), helpstring("ÌßÛÊßè EnableCreatePrompt")] HRESULT EnableCreatePrompt([in] BOOL newVal); + [propget, id(13), helpstring("ÌßÛÊßè EnableReadOnly")] HRESULT EnableReadOnly([out, retval] BOOL *pVal); + [propput, id(13), helpstring("ÌßÛÊßè EnableReadOnly")] HRESULT EnableReadOnly([in] BOOL newVal); + [propget, id(14), helpstring("ÌßÛÊßè ReadOnly")] HRESULT ReadOnly([out, retval] BOOL *pVal); + [propput, id(14), helpstring("ÌßÛÊßè ReadOnly")] HRESULT ReadOnly([in] BOOL newVal); + [propget, id(15), helpstring("ÌßÛÊßè NoDereferenceLinks")] HRESULT NoDereferenceLinks([out, retval] BOOL *pVal); + [propput, id(15), helpstring("ÌßÛÊßè NoDereferenceLinks")] HRESULT NoDereferenceLinks([in] BOOL newVal); + [propget, id(16), helpstring("ÌßÛÊßè InitialDir")] HRESULT InitialDir([out, retval] BSTR *pVal); + [propput, id(16), helpstring("ÌßÛÊßè InitialDir")] HRESULT InitialDir([in] BSTR newVal); + [propget, id(17), helpstring("ÌßÛÊßè HWND"),hidden] HRESULT HWND([out, retval] long *pVal); + [propput, id(17), helpstring("ÌßÛÊßè HWND"),hidden] HRESULT HWND([in] long newVal); + [propget, id(18), helpstring("ÌßÛÊßè BrowseForFolderCaption")] HRESULT BrowseForFolderCaption([out, retval] BSTR *pVal); + [propput, id(18), helpstring("ÌßÛÊßè BrowseForFolderCaption")] HRESULT BrowseForFolderCaption([in] BSTR newVal); + [propget, id(19), helpstring("ÌßÛÊßè MessageCaption")] HRESULT MessageCaption([out, retval] BSTR *pVal); + [propput, id(19), helpstring("ÌßÛÊßè MessageCaption")] HRESULT MessageCaption([in] BSTR newVal); + [id(20), helpstring("Ò¿¯ÄÞ ColorDialog")] HRESULT ColorDialog([out,retval]VARIANT* pcolorVal); + [propput, id(DISPID_CAPTION)] HRESULT Caption([in]BSTR strCaption); + [propget, id(DISPID_CAPTION)] HRESULT Caption([out,retval]BSTR* pstrCaption); + [id(1), helpstring("Ò¿¯ÄÞ SetMainWindow")] HRESULT SetMainWindow([in]VARIANT varUnk); + [id(2), helpstring("Ò¿¯ÄÞ OpenFileDialog")] HRESULT OpenFileDialog([in,optional]VARIANT varPathName,[in,optional]VARIANT varFilter,[out,retval]VARIANT* result); + [id(3), helpstring("Ò¿¯ÄÞ SaveFileDialog")] HRESULT SaveFileDialog([in,optional]VARIANT varPathName,[in,optional]VARIANT varFilter,[out,retval]VARIANT* result); + [id(4), helpstring("Ò¿¯ÄÞ MultiOpenFileDialog")] HRESULT MultiOpenFileDialog([in,optional]VARIANT varMulti,[in,optional]VARIANT varFilter,[out,retval]VARIANT* pbResult); + [id(5), helpstring("Ò¿¯ÄÞ BrowseForFolder")] HRESULT BrowseForFolder([in,optional]VARIANT caption,[in,optional]VARIANT varDir,[in,optional]VARIANT varMode,[out,retval]VARIANT* pvarReturn); + [id(6), helpstring("Ò¿¯ÄÞ MessageBox")] HRESULT MessageBox([in]VARIANT mes,[in,optional]VARIANT typ,[in,optional]VARIANT icon,[out,retval]VARIANT* pRet); + }; + +[ + uuid(806A3FFF-0A01-4366-8B16-781BDF9B5604), + version(1.0), + helpstring("SeraphyScriptTools 1.0 À²Ìß ×²ÌÞ×Ø") +] +library SERAPHYSCRIPTTOOLSLib +{ + importlib("stdole32.tlb"); + importlib("stdole2.tlb"); + + [ + uuid(938B1269-05AD-403A-B049-24D623417B37), + helpstring("_ICommDialogEvents Interface") + ] + dispinterface _ICommDialogEvents + { + properties: + methods: + }; + + + [ + object, + uuid(0B0433B0-97BD-4CCA-AE53-5DD46F901B2F), + dual, + helpstring("IOverlappedWindow Interface"), + pointer_default(unique) + ] + interface IOverlappedWindow : IDispatch + { + [propget, id(40), helpstring("ÌßÛÊßè IsEventEmpty")] HRESULT IsEventEmpty([out, retval] BOOL *pVal); + [propget, id(41), helpstring("ÌßÛÊßè DoubleBuffer"),hidden] HRESULT DoubleBuffer([out, retval] BOOL *pVal); + [propput, id(41), helpstring("ÌßÛÊßè DoubleBuffer"),hidden] HRESULT DoubleBuffer([in] BOOL newVal); + [propput, id(42), helpstring("ÌßÛÊßè CreateNoCloseWindow")] HRESULT CreateNoCloseWindow([in] BOOL newVal); + [propget, id(42), helpstring("ÌßÛÊßè CreateNoCloseWindow")] HRESULT CreateNoCloseWindow([out, retval] BOOL *pVal); + [propget, id(43), helpstring("ÌßÛÊßè Quit")] HRESULT Quit([out, retval] BOOL *pVal); + [propput, id(43), helpstring("ÌßÛÊßè Quit")] HRESULT Quit([in] BOOL newVal); + [propget, id(44), helpstring("ÌßÛÊßè Style")] HRESULT Style([out, retval] long *pVal); + [propput, id(44), helpstring("ÌßÛÊßè Style")] HRESULT Style([in] long newVal); + [propget, id(45), helpstring("ÌßÛÊßè Exstyle")] HRESULT Exstyle([out, retval] long *pVal); + [propput, id(45), helpstring("ÌßÛÊßè Exstyle")] HRESULT Exstyle([in] long newVal); + [propget, id(46), helpstring("ÌßÛÊßè WindowClassName")] HRESULT WindowClassName([out, retval] BSTR *pVal); + [propget, id(47), helpstring("ÌßÛÊßè AutoMessageLoop"), hidden] HRESULT AutoMessageLoop([out, retval] BOOL *pVal); + [propput, id(47), helpstring("ÌßÛÊßè AutoMessageLoop"), hidden] HRESULT AutoMessageLoop([in] BOOL newVal); + [propget, id(49), helpstring("ÌßÛÊßè AutoClose")] HRESULT AutoClose([out, retval] BOOL *pVal); + [propput, id(49), helpstring("ÌßÛÊßè AutoClose")] HRESULT AutoClose([in] BOOL newVal); + [propget, id(50), helpstring("ÌßÛÊßè backColor")] HRESULT backColor([out, retval] long *pVal); + [propput, id(50), helpstring("ÌßÛÊßè backColor")] HRESULT backColor([in] long newVal); + [propget, id(51), helpstring("ÌßÛÊßè TopMost")] HRESULT TopMost([out, retval] BOOL *pVal); + [propput, id(51), helpstring("ÌßÛÊßè TopMost")] HRESULT TopMost([in] BOOL newVal); + [propget, id(52), helpstring("ÌßÛÊßè PosX")] HRESULT PosX([out, retval] short *pVal); + [propput, id(52), helpstring("ÌßÛÊßè PosX")] HRESULT PosX([in] short newVal); + [propget, id(53), helpstring("ÌßÛÊßè PosY")] HRESULT PosY([out, retval] short *pVal); + [propput, id(53), helpstring("ÌßÛÊßè PosY")] HRESULT PosY([in] short newVal); + [propget, id(54), helpstring("ÌßÛÊßè Width")] HRESULT Width([out, retval] short *pVal); + [propput, id(54), helpstring("ÌßÛÊßè Width")] HRESULT Width([in] short newVal); + [propget, id(55), helpstring("ÌßÛÊßè Height")] HRESULT Height([out, retval] short *pVal); + [propput, id(55), helpstring("ÌßÛÊßè Height")] HRESULT Height([in] short newVal); + [propget, id(56), helpstring("ÌßÛÊßè AcceptFiles")] HRESULT AcceptFiles([out, retval] BOOL *pVal); + [propput, id(56), helpstring("ÌßÛÊßè AcceptFiles")] HRESULT AcceptFiles([in] BOOL newVal); + [propget, id(57), helpstring("ÌßÛÊßè Enable")] HRESULT Enable([out, retval] BOOL *pVal); + [propput, id(57), helpstring("ÌßÛÊßè Enable")] HRESULT Enable([in] BOOL newVal); + [propget, id(58), helpstring("ÌßÛÊßè Iconic")] HRESULT Iconic([out, retval] BOOL *pVal); + [propput, id(58), helpstring("ÌßÛÊßè Iconic")] HRESULT Iconic([in] BOOL newVal); + [propget, id(59), helpstring("ÌßÛÊßè Zoomed")] HRESULT Zoomed([out, retval] BOOL *pVal); + [propput, id(59), helpstring("ÌßÛÊßè Zoomed")] HRESULT Zoomed([in] BOOL newVal); + [propget, id(60), helpstring("ÌßÛÊßè Visible")] HRESULT Visible([out, retval] BOOL *pVal); + [propput, id(60), helpstring("ÌßÛÊßè Visible")] HRESULT Visible([in] BOOL newVal); + [propget, id(61), helpstring("ÌßÛÊßè HWND"),hidden] HRESULT HWND([out, retval] long *pVal); + [propget, id(62), helpstring("ÌßÛÊßè DropFiles")] HRESULT DropFiles([out, retval] VARIANT *pVal); + [propget, id(70), helpstring("ÌßÛÊßè Canvas")] HRESULT Canvas([out, retval] VARIANT *pVal); + [propget, id(71), helpstring("ÌßÛÊßè Event")] HRESULT Event([out, retval] VARIANT *pVal); + [propget, id(72), helpstring("ÌßÛÊßè Form")] HRESULT Form([out, retval] VARIANT *pVal); + [propput, id(DISPID_CAPTION)] HRESULT Caption([in]BSTR strCaption); + [propget, id(DISPID_CAPTION)] HRESULT Caption([out,retval]BSTR* pstrCaption); + [propget, id(80), helpstring("ÌßÛÊßè Object")] HRESULT Object([in,optional]VARIANT idx, [out, retval] VARIANT *pVal); + [propget, id(81), helpstring("ÌßÛÊßè ExitCode")] HRESULT ExitCode([out, retval] short *pVal); + [propput, id(81), helpstring("ÌßÛÊßè ExitCode")] HRESULT ExitCode([in] short newVal); + [propget, id(82), helpstring("ÌßÛÊßè WaitCursor")] HRESULT WaitCursor([out, retval] short *pVal); + [propput, id(82), helpstring("ÌßÛÊßè WaitCursor")] HRESULT WaitCursor([in] short newVal); + [id(83), helpstring("Ò¿¯ÄÞ LoadIcon")] HRESULT LoadIcon([in]VARIANT text); + [id(84), helpstring("Ò¿¯ÄÞ CenterWindow")] HRESULT CenterWindow(); + [propget, id(85), helpstring("ÌßÛÊßè ClassObject")] HRESULT ClassObject([out, retval] VARIANT *pVal); + [propput, id(85), helpstring("ÌßÛÊßè ClassObject")] HRESULT ClassObject([in] VARIANT newVal); + [propget, id(86), helpstring("ÌßÛÊßè ClientWidth")] HRESULT ClientWidth([out, retval] long *pVal); + [propget, id(87), helpstring("ÌßÛÊßè ClientHeight")] HRESULT ClientHeight([out, retval] long *pVal); + [propget, id(88), helpstring("ÌßÛÊßè innerWidth")] HRESULT innerWidth([out, retval] double *pVal); + [propget, id(89), helpstring("ÌßÛÊßè innerHeight")] HRESULT innerHeight([out, retval] double *pVal); + [propget, id(90), helpstring("ÌßÛÊßè AutoReleaseClassObject")] HRESULT AutoReleaseClassObject([out, retval] BOOL *pVal); + [propput, id(90), helpstring("ÌßÛÊßè AutoReleaseClassObject")] HRESULT AutoReleaseClassObject([in] BOOL newVal); + [propget, id(91), helpstring("ÌßÛÊßè DefaultAction")] HRESULT DefaultAction([out, retval] BOOL *pVal); + [propput, id(91), helpstring("ÌßÛÊßè DefaultAction")] HRESULT DefaultAction([in] BOOL newVal); + [id(92), helpstring("Ò¿¯ÄÞ SetClipboardText")] HRESULT SetClipboardText([in]BSTR text); + [id(93), helpstring("Ò¿¯ÄÞ GetClipboardText")] HRESULT GetClipboardText([out,retval]VARIANT* pVarText); + [id(1), helpstring("Ò¿¯ÄÞ WaitEvent")] HRESULT WaitEvent([in,optional]VARIANT varTim,[out,retval]BOOL* pRet); + [id(2), helpstring("Ò¿¯ÄÞ DoEvent"),hidden] HRESULT DoEvent([out,retval]VARIANT* varResult); + [id(3), helpstring("Ò¿¯ÄÞ DoModal")] HRESULT DoModal([out,retval]VARIANT* pRetcode); + [id(4), helpstring("Ò¿¯ÄÞ CreateChild")] HRESULT CreateChild([out,retval]VARIANT* pvarUnk); + [id(5), helpstring("Ò¿¯ÄÞ Open")] HRESULT Open([in,optional]VARIANT caption,[out,retval]VARIANT* pvarUnk); + [id(6), helpstring("Ò¿¯ÄÞ Close")] HRESULT Close(); + [id(7), helpstring("Ò¿¯ÄÞ SetPlacement")] HRESULT SetPlacement([in,optional]VARIANT x,[in,optional]VARIANT y,[in,optional]VARIANT w,[in,optional]VARIANT h,[out,retval]VARIANT* pvarUnk); + [id(8), helpstring("Ò¿¯ÄÞ SetWindowStyle")] HRESULT SetWindowStyle([in]VARIANT frametype,[in,optional]VARIANT caption_system,[in,optional]VARIANT maxmin,[out,retval]VARIANT* pvarUnk); + [id(9), helpstring("Ò¿¯ÄÞ SetFocus")] HRESULT SetFocus(); + [id(10), helpstring("Ò¿¯ÄÞ SetMenu")] HRESULT SetMenu([in]VARIANT fmt); + [id(11), helpstring("Ò¿¯ÄÞ SetForegroundWindow")] HRESULT SetForegroundWindow(); + [id(12), helpstring("Ò¿¯ÄÞ TrackPopupMenu")] HRESULT TrackPopupMenu([in]VARIANT text,[in,optional]VARIANT cmd,[out,retval]VARIANT* pRet); + [id(13), helpstring("Ò¿¯ÄÞ CheckMenu")] HRESULT CheckMenu([in]VARIANT cmd,[in]VARIANT mode); + [id(14), helpstring("Ò¿¯ÄÞ EnableMenu")] HRESULT EnableMenu([in]VARIANT cmd,[in]VARIANT mode); + [id(15), helpstring("Ò¿¯ÄÞ Refresh")] HRESULT Refresh(); + [id(16), helpstring("Ò¿¯ÄÞ Draw")] HRESULT Draw(); + [id(17), helpstring("Ò¿¯ÄÞ SetTimer")] HRESULT SetTimer([in]VARIANT tim,[out,retval]BOOL* pVal); + [id(18), helpstring("Ò¿¯ÄÞ GetSysColor")] HRESULT GetSysColor([in]VARIANT typ,[out,retval]VARIANT* col); + }; + + [ + uuid(E0F061C5-A9E7-4DAD-97C7-051F91C2D1EC), + helpstring("CommDialog Class") + ] + coclass CommDialog + { + [default] interface ICommDialog; + [default, source] dispinterface _ICommDialogEvents; + }; + [ + uuid(73421190-1EAF-4798-B35F-92D228F253D9), + helpstring("_IOverlappedWindowEvents Interface") + ] + dispinterface _IOverlappedWindowEvents + { + properties: + methods: + [id(10), helpstring("Ò¿¯ÄÞ OnClick")] HRESULT OnClick(); + [id(11), helpstring("Ò¿¯ÄÞ OnRClick")] HRESULT OnRClick(); + [id(12), helpstring("Ò¿¯ÄÞ OnDblClick")] HRESULT OnDblClick(); + [id(13), helpstring("Ò¿¯ÄÞ OnRDblClick")] HRESULT OnRDblClick(); + [id(14), helpstring("Ò¿¯ÄÞ OnSize")] HRESULT OnSize(); + [id(15), helpstring("Ò¿¯ÄÞ OnCommand")] HRESULT OnCommand(); + [id(16), helpstring("Ò¿¯ÄÞ OnDropFiles")] HRESULT OnDropFiles(); + [id(17), helpstring("Ò¿¯ÄÞ OnMouseMove")] HRESULT OnMouseMove(); + [id(18), helpstring("Ò¿¯ÄÞ OnClickOut")] HRESULT OnClickOut(); + [id(19), helpstring("Ò¿¯ÄÞ OnRClickOut")] HRESULT OnRClickOut(); + [id(20), helpstring("Ò¿¯ÄÞ OnClickCancel")] HRESULT OnClickCancel(); + [id(21), helpstring("Ò¿¯ÄÞ OnRClickCancel")] HRESULT OnRClickCancel(); + [id(22), helpstring("Ò¿¯ÄÞ OnTimer")] HRESULT OnTimer(); + [id(23), helpstring("Ò¿¯ÄÞ OnOK")] HRESULT OnOK(); + [id(24), helpstring("Ò¿¯ÄÞ OnCancel")] HRESULT OnCancel(); + [id(25), helpstring("Ò¿¯ÄÞ OnExit")] HRESULT OnExit(); + [id(26), helpstring("Ò¿¯ÄÞ InitWindow")] HRESULT InitWindow(); + [id(27), helpstring("Ò¿¯ÄÞ ExitWindow")] HRESULT ExitWindow(); + [id(110), helpstring("Ò¿¯ÄÞ OnClick")] HRESULT OnClickEx([in]IUnknown* varObj); + [id(111), helpstring("Ò¿¯ÄÞ OnRClick")] HRESULT OnRClickEx([in]IUnknown* varObj); + [id(112), helpstring("Ò¿¯ÄÞ OnDblClick")] HRESULT OnDblClickEx([in]IUnknown* varObj); + [id(113), helpstring("Ò¿¯ÄÞ OnRDblClick")] HRESULT OnRDblClickEx([in]IUnknown* varObj); + [id(114), helpstring("Ò¿¯ÄÞ OnSize")] HRESULT OnSizeEx([in]IUnknown* varObj); + [id(115), helpstring("Ò¿¯ÄÞ OnCommandEx")] HRESULT OnCommandEx([in]IUnknown* varObj); + [id(116), helpstring("Ò¿¯ÄÞ OnDropFiles")] HRESULT OnDropFilesEx([in]IUnknown* varObj); + [id(117), helpstring("Ò¿¯ÄÞ OnMouseMove")] HRESULT OnMouseMoveEx([in]IUnknown* varObj); + [id(118), helpstring("Ò¿¯ÄÞ OnClickOut")] HRESULT OnClickOutEx([in]IUnknown* varObj); + [id(119), helpstring("Ò¿¯ÄÞ OnRClickOut")] HRESULT OnRClickOutEx([in]IUnknown* varObj); + [id(120), helpstring("Ò¿¯ÄÞ OnClickCancel")] HRESULT OnClickCancelEx([in]IUnknown* varObj); + [id(121), helpstring("Ò¿¯ÄÞ OnRClickCancel")] HRESULT OnRClickCancelEx([in]IUnknown* varObj); + [id(122), helpstring("Ò¿¯ÄÞ OnTimer")] HRESULT OnTimerEx([in]IUnknown* varObj); + [id(123), helpstring("Ò¿¯ÄÞ OnOK")] HRESULT OnOKEx([in]IUnknown* varObj); + [id(124), helpstring("Ò¿¯ÄÞ OnCancel")] HRESULT OnCancelEx([in]IUnknown* varObj); + [id(125), helpstring("Ò¿¯ÄÞ OnExit")] HRESULT OnExitEx([in]IUnknown* varObj); + [id(126), helpstring("Ò¿¯ÄÞ InitWindow")] HRESULT InitWindowEx([in]IUnknown* varObj); + [id(127), helpstring("Ò¿¯ÄÞ ExitWindow")] HRESULT ExitWindowEx([in]IUnknown* varObj); + [id(128), helpstring("Ò¿¯ÄÞ OnContextMenu")] HRESULT OnContextMenu(); + [id(129), helpstring("Ò¿¯ÄÞ OnContextMenuEx")] HRESULT OnContextMenuEx([in]IUnknown* punkVal); + [id(130), helpstring("Ò¿¯ÄÞ OnContextDelete")] HRESULT OnContextDelete(); + [id(131), helpstring("Ò¿¯ÄÞ OnContextDeleteEx")] HRESULT OnContextDeleteEx([in]IUnknown* punkVal); + [id(132), helpstring("Ò¿¯ÄÞ OnKeydown")] HRESULT OnKeydown(); + [id(133), helpstring("Ò¿¯ÄÞ OnKeydownEx")] HRESULT OnKeydownEx([in]IUnknown* punkVal); + [id(134), helpstring("Ò¿¯ÄÞ OnKeydown2")] HRESULT OnKeydown2(); + [id(135), helpstring("Ò¿¯ÄÞ OnKeydown2Ex")] HRESULT OnKeydown2Ex([in]IUnknown* punkVal); + }; + [ + object, + uuid(504DDD1C-D928-45B4-994B-0E18E4CFCB71), + dual, + helpstring("IControl Interface"), + pointer_default(unique) + ] + interface IControl : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Text")] HRESULT Text([out, retval] BSTR *pVal); + [propput, id(1), helpstring("ÌßÛÊßè Text")] HRESULT Text([in] BSTR newVal); + [propget, id(2), helpstring("ÌßÛÊßè ID")] HRESULT ID([out, retval] short *pVal); + [propput, id(2), helpstring("ÌßÛÊßè ID")] HRESULT ID([in] short newVal); + [propget, id(3), helpstring("ÌßÛÊßè Visibility")] HRESULT Visibility([out, retval] BOOL *pVal); + [propput, id(3), helpstring("ÌßÛÊßè Visibility")] HRESULT Visibility([in] BOOL newVal); + [propget, id(4), helpstring("ÌßÛÊßè Enable")] HRESULT Enable([out, retval] BOOL *pVal); + [propput, id(4), helpstring("ÌßÛÊßè Enable")] HRESULT Enable([in] BOOL newVal); + [propget, id(5), helpstring("ÌßÛÊßè CheckState")] HRESULT CheckState([out, retval] short *pVal); + [propput, id(5), helpstring("ÌßÛÊßè CheckState")] HRESULT CheckState([in] short newVal); + [propget, id(6), helpstring("ÌßÛÊßè Width")] HRESULT Width([out, retval] short *pVal); + [propput, id(6), helpstring("ÌßÛÊßè Width")] HRESULT Width([in] short newVal); + [propget, id(7), helpstring("ÌßÛÊßè Height")] HRESULT Height([out, retval] short *pVal); + [propput, id(7), helpstring("ÌßÛÊßè Height")] HRESULT Height([in] short newVal); + [propget, id(8), helpstring("ÌßÛÊßè PosX")] HRESULT PosX([out, retval] short *pVal); + [propput, id(8), helpstring("ÌßÛÊßè PosX")] HRESULT PosX([in] short newVal); + [propget, id(9), helpstring("ÌßÛÊßè PosY")] HRESULT PosY([out, retval] short *pVal); + [propput, id(9), helpstring("ÌßÛÊßè PosY")] HRESULT PosY([in] short newVal); + [propget, id(10), helpstring("ÌßÛÊßè Style"), hidden] HRESULT Style([out, retval] long *pVal); + [propput, id(10), helpstring("ÌßÛÊßè Style"), hidden] HRESULT Style([in] long newVal); + [propget, id(11), helpstring("ÌßÛÊßè Exstyle")] HRESULT Exstyle([out, retval] long *pVal); + [propput, id(11), helpstring("ÌßÛÊßè Exstyle")] HRESULT Exstyle([in] long newVal); + [propget, id(12), helpstring("ÌßÛÊßè ClassName")] HRESULT ClassName([out, retval] BSTR *pVal); + [propget, id(13), helpstring("ÌßÛÊßè HWND"),hidden] HRESULT HWND([out, retval] long *pVal); + [propget, id(23), helpstring("ÌßÛÊßè CurrentSelectedItem")] HRESULT CurrentSelectedItem([out, retval] VARIANT *pVal); + [propput, id(23), helpstring("ÌßÛÊßè CurrentSelectedItem")] HRESULT CurrentSelectedItem([in] VARIANT newVal); + [propget, id(24), helpstring("ÌßÛÊßè ItemSelectState")] HRESULT ItemSelectState([in]VARIANT idx, [out, retval] VARIANT *pVal); + [propput, id(24), helpstring("ÌßÛÊßè ItemSelectState")] HRESULT ItemSelectState([in]VARIANT idx, [in] VARIANT newVal); + [propget, id(25), helpstring("ÌßÛÊßè SelectedCount")] HRESULT SelectedCount([out, retval] short *pVal); + [propget, id(26), helpstring("ÌßÛÊßè TreeRoot")] HRESULT TreeRoot([out, retval] VARIANT *pVal); + [propget, id(27), helpstring("ÌßÛÊßè ItemObject")] HRESULT ItemObject([in]VARIANT idx, [out, retval] VARIANT *pVal); + [id(28), helpstring("Ò¿¯ÄÞ DeleteAllItems")] HRESULT DeleteAllItems(); + [propget, id(29), helpstring("ÌßÛÊßè ItemCheckState")] HRESULT ItemCheckState([in]VARIANT idx, [out, retval] BOOL *pVal); + [propput, id(29), helpstring("ÌßÛÊßè ItemCheckState")] HRESULT ItemCheckState([in]VARIANT idx, [in] BOOL newVal); + [id(30), helpstring("Ò¿¯ÄÞ DeleteSelectedItem")] HRESULT DeleteSelectedItem(); + [propget, id(31), helpstring("ÌßÛÊßè ItemText")] HRESULT ItemText([in]VARIANT idx, [out, retval] BSTR *pVal); + [propput, id(31), helpstring("ÌßÛÊßè ItemText")] HRESULT ItemText([in]VARIANT idx, [in] BSTR newVal); + [id(32), helpstring("Ò¿¯ÄÞ SetClassEvent")] HRESULT SetClassEvent([in]BSTR name,[out,retval]VARIANT* pvarUnk); + [id(33), helpstring("Ò¿¯ÄÞ CreateChild")] HRESULT CreateChild([in]VARIANT text,[in]VARIANT varItem,[out,retval]VARIANT* pvarUnk); + [propget, id(DISPID_NEWENUM), helpstring("ÌßÛÊßè _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown* *pVal); + [id(14), helpstring("Ò¿¯ÄÞ Refresh")] HRESULT Refresh(); + [id(15), helpstring("Ò¿¯ÄÞ SetPlacement")] HRESULT SetPlacement([in,optional]VARIANT x,[in,optional]VARIANT y,[in,optional]VARIANT w,[in,optional]VARIANT h,[out,retval]VARIANT* pvarUnk); + [id(16), helpstring("Ò¿¯ÄÞ SetCheck")] HRESULT SetCheck([out,retval]VARIANT* pvarUnk); + [id(17), helpstring("Ò¿¯ÄÞ SetID")] HRESULT SetID([in]VARIANT varID,[out,retval]VARIANT* pvarUnk); + [id(18), helpstring("Ò¿¯ÄÞ AddString")] HRESULT AddString([in]VARIANT text,[out,retval]VARIANT* pRet); + [id(19), helpstring("Ò¿¯ÄÞ SetColumnText")] HRESULT SetColumnText([in]VARIANT item,[in]VARIANT col,[in]VARIANT text); + [id(20), helpstring("Ò¿¯ÄÞ GetColumnText")] HRESULT GetColumnText([in]VARIANT idx,[in]VARIANT col,[out,retval]VARIANT* pText); + [id(21), helpstring("Ò¿¯ÄÞ DeleteString")] HRESULT DeleteString([in]VARIANT idx,[out,retval]VARIANT* pRet); + [id(22), helpstring("Ò¿¯ÄÞ GetCount")] HRESULT GetCount([out,retval]VARIANT* pRet); + }; + + [ + uuid(B2946768-9331-43B8-BCD8-54FB6086A721), + helpstring("SeraphyScriptTools.OverlappedWindow Class") + ] + coclass OverlappedWindow + { + [default] interface IOverlappedWindow; + [default, source] dispinterface _IOverlappedWindowEvents; + }; + [ + uuid(64A4FBF7-2BAE-4C78-A00D-ADCFAEACEEBF), + helpstring("_IControlEvents Interface") + ] + dispinterface _IControlEvents + { + properties: + methods: + }; + [ + object, + uuid(644FE99A-D161-44A1-BF25-9589DB48CAAB), + dual, + helpstring("ICanvas Interface"), + pointer_default(unique) + ] + interface ICanvas : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Layer")] HRESULT Layer([in]VARIANT varLay, [out, retval] VARIANT *pVal); + [propget, id(2), helpstring("ÌßÛÊßè MarginWidth")] HRESULT MarginWidth([out, retval] long *pVal); + [propput, id(2), helpstring("ÌßÛÊßè MarginWidth")] HRESULT MarginWidth([in] long newVal); + [propget, id(3), helpstring("ÌßÛÊßè MarginHeight")] HRESULT MarginHeight([out, retval] long *pVal); + [propput, id(3), helpstring("ÌßÛÊßè MarginHeight")] HRESULT MarginHeight([in] long newVal); + [id(10), helpstring("Ò¿¯ÄÞ Print")] HRESULT Print(); + [id(11), helpstring("Ò¿¯ÄÞ PrintAs")] HRESULT PrintAs([in,optional]VARIANT print,[out,retval]VARIANT *pRet); + [id(12), helpstring("Ò¿¯ÄÞ GetPrinterDefault")] HRESULT GetPrinterDefault([in,optional]VARIANT name); + [id(13), helpstring("Ò¿¯ÄÞ LoadPicture")] HRESULT LoadPicture([in]VARIANT path,[out,retval]VARIANT* punkVal); + }; + + [ + uuid(AE3E878A-9C96-415D-88CB-F6F993DFAFE4), + helpstring("SeraphyScriptTools.Control Class"), + noncreatable + ] + coclass Control + { + [default] interface IControl; + [default, source] dispinterface _IControlEvents; + }; + [ + uuid(374972C2-30A0-45D5-9CE3-50962F39D376), + helpstring("_ICanvasEvents Interface") + ] + dispinterface _ICanvasEvents + { + properties: + methods: + }; + [ + object, + uuid(5E9EFBAD-D673-4095-A8D0-9F915E0E9A86), + dual, + helpstring("ILayer Interface"), + pointer_default(unique) + ] + interface ILayer : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Color")] HRESULT Color([out, retval] long *pVal); + [propput, id(1), helpstring("ÌßÛÊßè Color")] HRESULT Color([in] long newVal); + [propget, id(2), helpstring("ÌßÛÊßè FillColor")] HRESULT FillColor([out, retval] long *pVal); + [propput, id(2), helpstring("ÌßÛÊßè FillColor")] HRESULT FillColor([in] long newVal); + [propget, id(3), helpstring("ÌßÛÊßè FontColor")] HRESULT FontColor([out, retval] long *pVal); + [propput, id(3), helpstring("ÌßÛÊßè FontColor")] HRESULT FontColor([in] long newVal); + [propget, id(4), helpstring("ÌßÛÊßè FontName")] HRESULT FontName([out, retval] BSTR *pVal); + [propput, id(4), helpstring("ÌßÛÊßè FontName")] HRESULT FontName([in] BSTR newVal); + [propput, id(5), helpstring("ÌßÛÊßè FontSize")] HRESULT FontSize([in] short newVal); + [propget, id(5), helpstring("ÌßÛÊßè FontSize")] HRESULT FontSize([out, retval] short *pVal); + [propget, id(6), helpstring("ÌßÛÊßè Visible")] HRESULT Visible([out, retval] BOOL *pVal); + [propput, id(6), helpstring("ÌßÛÊßè Visible")] HRESULT Visible([in] BOOL newVal); + [id(10), helpstring("Ò¿¯ÄÞ Clear")] HRESULT Clear(); + [id(11), helpstring("Ò¿¯ÄÞ Circle")] HRESULT Circle([in]VARIANT x,[in]VARIANT y,[in]VARIANT radius); + [id(12), helpstring("Ò¿¯ÄÞ Line")] HRESULT Line([in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey); + [id(13), helpstring("Ò¿¯ÄÞ Box")] HRESULT Box([in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey); + [id(14), helpstring("Ò¿¯ÄÞ Arc")] HRESULT Arc([in]VARIANT x1,[in]VARIANT y1,[in]VARIANT x2,[in]VARIANT y2,[in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey); + [id(15), helpstring("Ò¿¯ÄÞ FillBox")] HRESULT FillBox([in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey); + [id(16), helpstring("Ò¿¯ÄÞ FillCircle")] HRESULT FillCircle([in]VARIANT x,[in]VARIANT y,[in]VARIANT radius); + [id(17), helpstring("Ò¿¯ÄÞ FillArc")] HRESULT FillArc([in]VARIANT x1,[in]VARIANT y1,[in]VARIANT x2,[in]VARIANT y2,[in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey); + [id(18), helpstring("Ò¿¯ÄÞ Text")] HRESULT Text([in]VARIANT x,[in]VARIANT y,[in]VARIANT text); + [id(19), helpstring("Ò¿¯ÄÞ TextBox")] HRESULT TextBox([in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey,[in]VARIANT text,[in,optional]VARIANT fmt); + [id(20), helpstring("Ò¿¯ÄÞ FillRBox")] HRESULT FillRBox([in]VARIANT sx,[in]VARIANT sy,[in]VARIANT ex,[in]VARIANT ey,[in]VARIANT w,[in]VARIANT h); + [id(21), helpstring("Ò¿¯ÄÞ Polygon")] HRESULT Polygon([in]VARIANT cx,[in]VARIANT cy,[in]VARIANT arrayPt); + [id(22), helpstring("Ò¿¯ÄÞ Picture")] HRESULT Picture([in]VARIANT idx,[in]VARIANT x,[in]VARIANT y,[in,optional]VARIANT w,[in,optional]VARIANT h); + [id(23), helpstring("Ò¿¯ÄÞ SetMappingMode")] HRESULT SetMappingMode([in]VARIANT mode); + }; + + [ + uuid(88197854-3CFF-4873-BE89-F508FC768ECD), + helpstring("SeraphyScriptTools.Canvas Class") + ] + coclass Canvas + { + [default] interface ICanvas; + [default, source] dispinterface _ICanvasEvents; + }; + [ + uuid(21BB44A7-996C-4FEA-B32E-1E64FFB14A72), + helpstring("_ILayerEvents Interface") + ] + dispinterface _ILayerEvents + { + properties: + methods: + }; + [ + object, + uuid(28090FEE-0F7F-4909-99C4-80166D2BBB64), + dual, + helpstring("IForm Interface"), + pointer_default(unique) + ] + interface IForm : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Control")] HRESULT Control([in]VARIANT varNum, [out, retval] VARIANT *pVal); + [propget, id(2), helpstring("ÌßÛÊßè LeftMargin")] HRESULT LeftMargin([out, retval] short *pVal); + [propput, id(2), helpstring("ÌßÛÊßè LeftMargin")] HRESULT LeftMargin([in] short newVal); + [propget, id(3), helpstring("ÌßÛÊßè RightMargin")] HRESULT RightMargin([out, retval] short *pVal); + [propput, id(3), helpstring("ÌßÛÊßè RightMargin")] HRESULT RightMargin([in] short newVal); + [id(4), helpstring("Ò¿¯ÄÞ SetControlFont")] HRESULT SetControlFont([in]VARIANT fontname,[in]VARIANT fontsize); + [id(10), helpstring("Ò¿¯ÄÞ Label")] HRESULT Label([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(11), helpstring("Ò¿¯ÄÞ Button")] HRESULT Button([in]VARIANT text,[in,optional]VARIANT width,[out,retval] VARIANT *pvarUnk); + [id(12), helpstring("Ò¿¯ÄÞ CheckBox")] HRESULT CheckBox([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(13), helpstring("Ò¿¯ÄÞ Edit")] HRESULT Edit([in,optional]VARIANT text,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(14), helpstring("Ò¿¯ÄÞ ClearControls")] HRESULT ClearControls(); + [id(15), helpstring("Ò¿¯ÄÞ ControlBreak")] HRESULT ControlBreak(); + [id(16), helpstring("Ò¿¯ÄÞ ControlGroup")] HRESULT ControlGroup(); + [id(17), helpstring("Ò¿¯ÄÞ RadioButton")] HRESULT RadioButton([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(18), helpstring("Ò¿¯ÄÞ ControlPad")] HRESULT ControlPad([in]VARIANT width,[in,optional]VARIANT height); + [id(19), helpstring("Ò¿¯ÄÞ PasswordEdit")] HRESULT PasswordEdit([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(20), helpstring("Ò¿¯ÄÞ ReadonlyEdit")] HRESULT ReadonlyEdit([in]VARIANT text,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* punkVal); + [id(21), helpstring("Ò¿¯ÄÞ CheckBox3state")] HRESULT CheckBox3state([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(22), helpstring("Ò¿¯ÄÞ PushCheckButton")] HRESULT PushCheckButton([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(23), helpstring("Ò¿¯ÄÞ PushRadioButton")] HRESULT PushRadioButton([in]VARIANT text,[in,optional]VARIANT width,[out,retval]VARIANT* pvarUnk); + [id(24), helpstring("Ò¿¯ÄÞ StatusLabel")] HRESULT StatusLabel([in]VARIANT text,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(25), helpstring("Ò¿¯ÄÞ ControlUseStaticEdge")] HRESULT ControlUseStaticEdge([in]VARIANT mode); + [id(26), helpstring("Ò¿¯ÄÞ ListBox")] HRESULT ListBox([in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(27), helpstring("Ò¿¯ÄÞ MultiListBox")] HRESULT MultiListBox([in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(28), helpstring("Ò¿¯ÄÞ DropdownList")] HRESULT DropdownList([in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(29), helpstring("Ò¿¯ÄÞ DropdownEdit")] HRESULT DropdownEdit([in,optional]VARIANT text,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(30), helpstring("Ò¿¯ÄÞ TreeView")] HRESULT TreeView([in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(31), helpstring("Ò¿¯ÄÞ ListView")] HRESULT ListView([in,optional]VARIANT column,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(32), helpstring("Ò¿¯ÄÞ EditListView")] HRESULT EditListView([in,optional]VARIANT colum,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [id(33), helpstring("Ò¿¯ÄÞ CheckListView")] HRESULT CheckListView([in,optional]VARIANT colum,[in,optional]VARIANT width,[in,optional]VARIANT height,[out,retval]VARIANT* pvarUnk); + [propget, id(34), helpstring("ÌßÛÊßè ControlColor")] HRESULT ControlColor([out, retval] long *pVal); + [propput, id(34), helpstring("ÌßÛÊßè ControlColor")] HRESULT ControlColor([in] long newVal); + }; + + [ + uuid(AF8351BD-890F-470F-A33D-D7F78F8B8E9B), + helpstring("SeraphyScriptTools.Layer Class"), + noncreatable + ] + coclass Layer + { + [default] interface ILayer; + [default, source] dispinterface _ILayerEvents; + }; + [ + uuid(46E2D67F-EC2B-46D1-A104-D6B358B79D79), + helpstring("_IFormEvents Interface") + ] + dispinterface _IFormEvents + { + properties: + methods: + }; + [ + object, + uuid(FBFFA998-55F3-4F27-B44E-2E764C33364D), + dual, + helpstring("IEvent Interface"), + pointer_default(unique) + ] + interface IEvent : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Message")] HRESULT Message([out, retval] short *pVal); + [propget, id(2), helpstring("ÌßÛÊßè Parameter")] HRESULT Parameter([out, retval] short *pVal); + [propget, id(3), helpstring("ÌßÛÊßè PosX")] HRESULT PosX([out, retval] double *pVal); + [propget, id(4), helpstring("ÌßÛÊßè PosY")] HRESULT PosY([out, retval] double *pVal); + [propget, id(5), helpstring("ÌßÛÊßè time")] HRESULT time([out, retval] DATE *pVal); + [id(6), helpstring("Ò¿¯ÄÞ IsMouseMove")] HRESULT IsMouseMove([out,retval]BOOL* pResult); + [id(7), helpstring("Ò¿¯ÄÞ IsClick")] HRESULT IsClick([out,retval]BOOL* pResult); + [id(8), helpstring("Ò¿¯ÄÞ IsRClick")] HRESULT IsRClick([out,retval]BOOL* pResult); + [id(9), helpstring("Ò¿¯ÄÞ IsClickCancel")] HRESULT IsClickCancel([out,retval]BOOL* pResult); + [id(10), helpstring("Ò¿¯ÄÞ IsRClickCancel")] HRESULT IsRClickCancel([out,retval]BOOL* pResult); + [id(11), helpstring("Ò¿¯ÄÞ IsClickOut")] HRESULT IsClickOut([out,retval]BOOL* pResult); + [id(12), helpstring("Ò¿¯ÄÞ IsRClickOut")] HRESULT IsRClickOut([out,retval]BOOL* pResult); + [id(13), helpstring("Ò¿¯ÄÞ IsCommand")] HRESULT IsCommand([out,retval]BOOL* pResult); + [id(14), helpstring("Ò¿¯ÄÞ IsTimer")] HRESULT IsTimer([out,retval]BOOL* pResult); + [id(15), helpstring("Ò¿¯ÄÞ IsSize")] HRESULT IsSize([out,retval]BOOL* pResult); + [id(16), helpstring("Ò¿¯ÄÞ IsExit")] HRESULT IsExit([out,retval]BOOL* pResult); + [id(17), helpstring("Ò¿¯ÄÞ IsOK")] HRESULT IsOK([out,retval]BOOL* pResult); + [id(18), helpstring("Ò¿¯ÄÞ IsCancel")] HRESULT IsCancel([out,retval]BOOL* pResult); + [id(19), helpstring("Ò¿¯ÄÞ IsDblClick")] HRESULT IsDblClick([out,retval]BOOL* pResult); + [id(20), helpstring("Ò¿¯ÄÞ IsRDblClick")] HRESULT IsRDblClick([out,retval]BOOL* pResult); + [propget, id(21), helpstring("ÌßÛÊßè ExtParameter")] HRESULT ExtParameter([out, retval] long *pVal); + [id(22), helpstring("Ò¿¯ÄÞ IsContextMenu")] HRESULT IsContextMenu([out,retval]BOOL* pResult); + [id(23), helpstring("Ò¿¯ÄÞ IsContextDelete")] HRESULT IsContextDelete([out,retval]BOOL* pResult); + [id(24), helpstring("Ò¿¯ÄÞ IsKeydown")] HRESULT IsKeydown([out,retval]BOOL* pResult); + [propget, id(25), helpstring("ÌßÛÊßè DPosX")] HRESULT DPosX([out, retval] long *pVal); + [propget, id(26), helpstring("ÌßÛÊßè DPosY")] HRESULT DPosY([out, retval] long *pVal); + [id(27), helpstring("Ò¿¯ÄÞ IsKeydown2")] HRESULT IsKeydown2([out,retval]BOOL* pResult); + }; + + [ + uuid(5869FF04-ED73-4EEC-BC48-29AADF4EFE61), + helpstring("SeraphyScriptTools.Form Class"), + noncreatable + ] + coclass Form + { + [default] interface IForm; + [default, source] dispinterface _IFormEvents; + }; + [ + uuid(EF80D99E-D8EB-4EE7-8868-C05578F23E4B), + helpstring("_IEventEvents Interface") + ] + dispinterface _IEventEvents + { + properties: + methods: + }; + + + [ + object, + uuid(80E13A41-FB92-4D5D-8042-1E556B681855), + dual, + helpstring("ISeraphyScriptTools_Instance Interface"), + pointer_default(unique) + ] + interface ISeraphyScriptTools_Instance : IDispatch + { + [propput, id(DISPID_CAPTION)] HRESULT Caption([in]BSTR strCaption); + [propget, id(DISPID_CAPTION)] HRESULT Caption([out,retval]BSTR* pstrCaption); + [propget, id(1), helpstring("ÌßÛÊßè Dialog")] HRESULT Dialog([out, retval] VARIANT *pVal); + [propget, id(2), helpstring("ÌßÛÊßè MainFrame")] HRESULT MainFrame([out, retval] VARIANT *pVal); + [id(3), helpstring("Ò¿¯ÄÞ CreateFrame")] HRESULT CreateFrame([out,retval]VARIANT* pvarUnk); + [id(4), helpstring("Ò¿¯ÄÞ WaitEvent")] HRESULT WaitEvent([in,optional]VARIANT varTim,[out,retval]VARIANT* pvarUnk); + [propget, id(5), helpstring("ÌßÛÊßè WaitCursor")] HRESULT WaitCursor([out, retval] short *pVal); + [propput, id(5), helpstring("ÌßÛÊßè WaitCursor")] HRESULT WaitCursor([in] short newVal); + [propget, id(8), helpstring("ÌßÛÊßè Keyboard")] HRESULT Keyboard([in]VARIANT vk, [out, retval] BOOL *pVal); + [propget, id(9), helpstring("ÌßÛÊßè MousePosX")] HRESULT MousePosX([out, retval] short *pVal); + [propget, id(10), helpstring("ÌßÛÊßè MousePosY")] HRESULT MousePosY([out, retval] short *pVal); + [propget, id(11), helpstring("ÌßÛÊßè Version")] HRESULT Version([out, retval] double *pVal); + }; + + [ + uuid(6E7538A4-2A3E-4631-BB79-6A9D923DB432), + helpstring("Event Class"), + noncreatable + ] + coclass Event + { + [default] interface IEvent; + [default, source] dispinterface _IEventEvents; + }; + [ + uuid(B63BD6A9-2157-4578-8138-895E34BDD5F0), + helpstring("_ISeraphyScriptTools_InstanceEvents Interface") + ] + dispinterface _ISeraphyScriptTools_InstanceEvents + { + properties: + methods: + }; + [ + object, + uuid(12DA362D-72CE-4BB9-981F-B46B90DAE9AF), + dual, + helpstring("ITreeItem Interface"), + pointer_default(unique) + ] + interface ITreeItem : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Parent")] HRESULT Parent([out, retval] IUnknown* *pVal); + [propget, id(2), helpstring("ÌßÛÊßè ChildItem")] HRESULT ChildItem([out, retval] IUnknown* *pVal); + [propget, id(3), helpstring("ÌßÛÊßè NextItem")] HRESULT NextItem([out, retval] IUnknown* *pVal); + [propget, id(4), helpstring("ÌßÛÊßè PrevItem")] HRESULT PrevItem([out, retval] IUnknown* *pVal); + [propget, id(5), helpstring("ÌßÛÊßè Text")] HRESULT Text([out, retval] BSTR *pVal); + [propput, id(5), helpstring("ÌßÛÊßè Text")] HRESULT Text([in] BSTR newVal); + [propget, id(6), helpstring("ÌßÛÊßè Object")] HRESULT Object([in,optional]VARIANT idx, [out, retval] VARIANT *pVal); + [id(7), helpstring("Ò¿¯ÄÞ Create")] HRESULT Create([in]VARIANT text,[out,retval]IUnknown** punkVal); + [id(8), helpstring("Ò¿¯ÄÞ Erase")] HRESULT Erase(); + [id(9), helpstring("Ò¿¯ÄÞ Select")] HRESULT Select(); + [id(10), helpstring("Ò¿¯ÄÞ Expand")] HRESULT Expand(); + [id(11), helpstring("Ò¿¯ÄÞ Sort")] HRESULT Sort(); + [id(12), helpstring("Ò¿¯ÄÞ IsValid")] HRESULT IsValid([out,retval]BOOL* pResult); + }; + [ + object, + uuid(E911BCA5-E5CA-4A49-9A48-9F6D933B5DCC), + dual, + helpstring("IObjectMap Interface"), + pointer_default(unique) + ] + interface IObjectMap : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Value")] HRESULT Value([in]VARIANT key, [out, retval] VARIANT *pVal); + [propput, id(1), helpstring("ÌßÛÊßè Value")] HRESULT Value([in]VARIANT key, [in] VARIANT newVal); + [propget, id(2), helpstring("ÌßÛÊßè Count")] HRESULT Count([out, retval] long *pVal); + [id(3), helpstring("Ò¿¯ÄÞ Clear")] HRESULT Clear(); + [id(4), helpstring("Ò¿¯ÄÞ Duplicate")] HRESULT Duplicate([out,retval]IUnknown** punkVal); + [id(5), helpstring("Ò¿¯ÄÞ CreateMap")] HRESULT CreateMap([out,retval]IUnknown** punkVal); + [id(6), helpstring("Ò¿¯ÄÞ FindNear")] HRESULT FindNear([in]VARIANT key,[out,retval]VARIANT *pVal); + [propget, id(7), helpstring("ÌßÛÊßè NearValue")] HRESULT NearValue([in]VARIANT key,[out,retval]VARIANT* pVal); + [id(8), helpstring("Ò¿¯ÄÞ ExpandVariables")] HRESULT ExpandVariables([in]VARIANT text,[in,optional]VARIANT env,[out,retval]VARIANT* pVal); + [propget, id(9), helpstring("ÌßÛÊßè IsExist")] HRESULT IsExist([in]VARIANT key, [out, retval] BOOL *pVal); + [id(10), helpstring("Ò¿¯ÄÞ Erase")] HRESULT Erase([in]VARIANT key); + [id(11), helpstring("Ò¿¯ÄÞ LoadProfile")] HRESULT LoadProfile([in]IUnknown* punkVal); + [id(12), helpstring("Ò¿¯ÄÞ SaveProfile")] HRESULT SaveProfile([in]IUnknown* punkVal); + [propget, id(DISPID_NEWENUM), helpstring("ÌßÛÊßè _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown* *pVal); + }; + [ + object, + uuid(F8B84F95-7454-463B-BDC4-DE3EB9A96550), + dual, + helpstring("ISeraphyScriptTools_Shell Interface"), + pointer_default(unique) + ] + interface ISeraphyScriptTools_Shell : IDispatch + { + [id(1), helpstring("Ò¿¯ÄÞ ShellExecute")] HRESULT ShellExecute([in]VARIANT path,[in,optional]VARIANT param,[in,optional]VARIANT initdir,[in,optional]VARIANT mode, [out,retval]VARIANT* punkVal); + [id(2), helpstring("Ò¿¯ÄÞ GetSpecialFolderLocations")] HRESULT GetSpecialFolderLocations([in]IUnknown* punkVal); + [propget, id(3), helpstring("ÌßÛÊßè IsWindowNT")] HRESULT IsWindowNT([out, retval] BOOL *pVal); + [propget, id(4), helpstring("ÌßÛÊßè WindowsVersion")] HRESULT WindowsVersion([out, retval] long *pVal); + [id(5), helpstring("Ò¿¯ÄÞ GetDLLVersion")] HRESULT GetDLLVersion([in]VARIANT text,[in,optional]VARIANT min,[out,retval]VARIANT* pVal); + [id(6), helpstring("Ò¿¯ÄÞ ParseName")] HRESULT ParseName([in,optional]VARIANT text,[out,retval]VARIANT* pVal); + [id(7), helpstring("Ò¿¯ÄÞ Copy")] HRESULT Copy([in]VARIANT from,[in]VARIANT to,[out,retval]VARIANT* pVal); + [id(8), helpstring("Ò¿¯ÄÞ CopyRenameOnCollision")] HRESULT CopyRenameOnCollision([in]VARIANT from,[in]VARIANT to,[out,retval]VARIANT* pVal); + [id(9), helpstring("Ò¿¯ÄÞ Move")] HRESULT Move([in]VARIANT from,[in]VARIANT to,[out,retval]VARIANT* pVal); + [id(10), helpstring("Ò¿¯ÄÞ Delete")] HRESULT Delete([in]VARIANT from,[out,retval]VARIANT* pVal); + [propget, id(11), helpstring("ÌßÛÊßè Confirm")] HRESULT Confirm([out, retval] BOOL *pVal); + [propput, id(11), helpstring("ÌßÛÊßè Confirm")] HRESULT Confirm([in] BOOL newVal); + [propget, id(12), helpstring("ÌßÛÊßè Silent")] HRESULT Silent([out, retval] BOOL *pVal); + [propput, id(12), helpstring("ÌßÛÊßè Silent")] HRESULT Silent([in] BOOL newVal); + [id(13), helpstring("Ò¿¯ÄÞ EmptyRecycleBin")] HRESULT EmptyRecycleBin([in,optional]VARIANT dir); + [id(14), helpstring("Ò¿¯ÄÞ RecentDocs")] HRESULT RecentDocs([in,optional]VARIANT text); + [id(15), helpstring("Ò¿¯ÄÞ SetMainWindow")] HRESULT SetMainWindow([in]VARIANT varUnk); + [id(16), helpstring("Ò¿¯ÄÞ IsExist")] HRESULT IsExist([in]VARIANT name,[out,retval]VARIANT* pVal); + }; + [ + object, + uuid(690ED5D8-DBA9-4982-9E6E-C8B69342C47E), + dual, + helpstring("IShellExecObj Interface"), + pointer_default(unique) + ] + interface IShellExecObj : IDispatch + { + [id(1), helpstring("Ò¿¯ÄÞ Wait")] HRESULT Wait([in,optional]VARIANT tim,[out,retval]VARIANT* pVal); + [propget, id(2), helpstring("ÌßÛÊßè ExitCode")] HRESULT ExitCode([out, retval] long *pVal); + }; + [ + object, + uuid(C9C4F4B0-BE0D-481F-889A-0CCF249494F7), + dual, + helpstring("IObjectVector Interface"), + pointer_default(unique) + ] + interface IObjectVector : IDispatch + { + [id(1), helpstring("Ò¿¯ÄÞ CreateVector")] HRESULT CreateVector([out,retval]IUnknown** punkVal); + [id(2), helpstring("Ò¿¯ÄÞ Duplicate")] HRESULT Duplicate([in,optional]VARIANT idx,[in,optional]VARIANT count,[out,retval]IUnknown** punkVal); + [id(3), helpstring("Ò¿¯ÄÞ Clear")] HRESULT Clear(); + [id(4), helpstring("Ò¿¯ÄÞ Erase")] HRESULT Erase([in]VARIANT start,[in,optional]VARIANT count); + [id(5), helpstring("Ò¿¯ÄÞ Push")] HRESULT Push([in]VARIANT newVal); + [id(6), helpstring("Ò¿¯ÄÞ Pop")] HRESULT Pop([out,retval]VARIANT* pVal); + [id(7), helpstring("Ò¿¯ÄÞ Insert")] HRESULT Insert([in]VARIANT idx,[in]VARIANT newVal); + [propget, id(8), helpstring("ÌßÛÊßè Value")] HRESULT Value([in,optional]VARIANT idx, [out, retval] VARIANT *pVal); + [propput, id(8), helpstring("ÌßÛÊßè Value")] HRESULT Value([in,optional]VARIANT idx, [in] VARIANT newVal); + [propget, id(9), helpstring("ÌßÛÊßè Count")] HRESULT Count([out, retval] long *pVal); + [id(10), helpstring("Ò¿¯ÄÞ Merge")] HRESULT Merge([in]VARIANT unkVal); + [id(11), helpstring("Ò¿¯ÄÞ MakeArray")] HRESULT MakeArray([out,retval]VARIANT* pVal); + [propget, id(DISPID_NEWENUM), helpstring("ÌßÛÊßè _NewEnum")] HRESULT _NewEnum([out, retval] IUnknown* *pVal); + }; + [ + object, + uuid(8402BE8E-3972-42F4-BEE3-2717CDC51949), + dual, + helpstring("ISeraphyScriptTools_ProfileSection Interface"), + pointer_default(unique) + ] + interface ISeraphyScriptTools_ProfileSection : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè Value")] HRESULT Value([in]VARIANT idx, [out, retval] VARIANT *pVal); + [propput, id(1), helpstring("ÌßÛÊßè Value")] HRESULT Value([in]VARIANT idx, [in] VARIANT newVal); + [id(2), helpstring("Ò¿¯ÄÞ GetValue")] HRESULT GetValue([in]VARIANT idx,[in,optional]VARIANT def,[out,retval]VARIANT* pVal); + [id(3), helpstring("Ò¿¯ÄÞ GetKeyNames")] HRESULT GetKeyNames([out,retval]VARIANT* pVal); + }; + [ + object, + uuid(26F24F9B-3FFF-49BC-9D87-A46469D90DCA), + dual, + helpstring("ISeraphyScriptTool_ParseName Interface"), + pointer_default(unique) + ] + interface ISeraphyScriptTool_ParseName : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè PathName")] HRESULT PathName([out, retval] BSTR *pVal); + [propput, id(1), helpstring("ÌßÛÊßè PathName")] HRESULT PathName([in] BSTR newVal); + [propget, id(2), helpstring("ÌßÛÊßè FileName")] HRESULT FileName([out, retval] BSTR *pVal); + [propput, id(2), helpstring("ÌßÛÊßè FileName")] HRESULT FileName([in] BSTR newVal); + [propget, id(3), helpstring("ÌßÛÊßè Extention")] HRESULT Extention([out, retval] BSTR *pVal); + [propput, id(3), helpstring("ÌßÛÊßè Extention")] HRESULT Extention([in] BSTR newVal); + [propget, id(4), helpstring("ÌßÛÊßè Name")] HRESULT Name([out, retval] BSTR *pVal); + [propput, id(4), helpstring("ÌßÛÊßè Name")] HRESULT Name([in] BSTR newVal); + [propget, id(5), helpstring("ÌßÛÊßè Drive")] HRESULT Drive([out, retval] BSTR *pVal); + [propput, id(5), helpstring("ÌßÛÊßè Drive")] HRESULT Drive([in] BSTR newVal); + [propget, id(6), helpstring("ÌßÛÊßè Directory")] HRESULT Directory([out, retval] BSTR *pVal); + }; + [ + object, + uuid(B95767D2-7FFF-4709-9938-A64A558855DE), + dual, + helpstring("IPrivateProfile Interface"), + pointer_default(unique) + ] + interface IPrivateProfile : IDispatch + { + [propget, id(1), helpstring("ÌßÛÊßè ProfilePath")] HRESULT ProfilePath([out, retval] BSTR *pVal); + [propput, id(1), helpstring("ÌßÛÊßè ProfilePath")] HRESULT ProfilePath([in] BSTR newVal); + [id(2), helpstring("Ò¿¯ÄÞ OpenSection")] HRESULT OpenSection([in]VARIANT text,[out,retval]VARIANT* pVal); + }; + + [ + uuid(D952EC87-3C30-46CC-879E-06AC42A006BC), + helpstring("SeraphyScriptTools.Instance Class") + ] + coclass SeraphyScriptTools_Instance + { + [default] interface ISeraphyScriptTools_Instance; + [default, source] dispinterface _ISeraphyScriptTools_InstanceEvents; + }; + [ + uuid(300F33B2-A6C8-4712-A818-52964AAC531B), + helpstring("SeraphyScriptTools.TreeItem Class") + ] + coclass TreeItem + { + [default] interface ITreeItem; + }; + [ + uuid(E368625A-EE53-43BA-8433-B7FE6E995DEA), + helpstring("SeraphyScriptTools.ObjectMap Class") + ] + coclass ObjectMap + { + [default] interface IObjectMap; + }; + [ + uuid(A1F18502-8397-4586-AE93-8F6384056403), + helpstring("SeraphyScriptTools.Shell Class") + ] + coclass SeraphyScriptTools_Shell + { + [default] interface ISeraphyScriptTools_Shell; + }; + [ + uuid(B7168409-78F6-4C7A-A7E6-15D978B65634), + helpstring("SeraphyScriptTools.ShellExecObj Class") + ] + coclass ShellExecObj + { + [default] interface IShellExecObj; + }; + [ + uuid(FFA411CA-1872-4A89-92F2-A7EBCBB83241), + helpstring("SeraphyScriptTools.ObjectVector Class") + ] + coclass ObjectVector + { + [default] interface IObjectVector; + }; + [ + uuid(E6DE44A6-32C5-4818-99FB-45BB5E6DB1FF), + helpstring("SeraphyScriptTools.ProfileSection Class") + ] + coclass ProfileSection + { + [default] interface ISeraphyScriptTools_ProfileSection; + }; + [ + uuid(43AB6371-EFA9-4C25-897A-6D6249872022), + helpstring("SeraphyScriptTools.ParseName Class") + ] + coclass ParseName + { + [default] interface ISeraphyScriptTool_ParseName; + }; + [ + uuid(A1DADEC9-00B3-4D99-8D4A-17779E94A8AA), + helpstring("SeraphyScriptTools.PrivateProfile Class") + ] + coclass PrivateProfile + { + [default] interface IPrivateProfile; + }; +}; diff --git a/SeraphyScriptTools.rc b/SeraphyScriptTools.rc new file mode 100644 index 0000000..bcf03f0 --- /dev/null +++ b/SeraphyScriptTools.rc @@ -0,0 +1,171 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// “ú–{Œê resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN) +#ifdef _WIN32 +LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT +#pragma code_page(932) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "1 TYPELIB ""SeraphyScriptTools.tlb""\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,1,0,1 + PRODUCTVERSION 1,1,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "041104b0" + BEGIN + VALUE "Comments", "\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "SeraphyScriptTools Module\0" + VALUE "FileVersion", "1, 1, 0, 1\0" + VALUE "InternalName", "SeraphyScriptTools\0" + VALUE "LegalCopyright", "Copyright 2000\0" + VALUE "LegalTrademarks", "\0" + VALUE "OLESelfRegister", "\0" + VALUE "OriginalFilename", "SeraphyScriptTools.DLL\0" + VALUE "PrivateBuild", "\0" + VALUE "ProductName", "SeraphyScriptTools Module\0" + VALUE "ProductVersion", "1, 1, 0, 1\0" + VALUE "SpecialBuild", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x411, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_COMMDIALOG BITMAP DISCARDABLE "commdial.bmp" +IDB_OVERLAPPEDWINDOW BITMAP DISCARDABLE "popupwin.bmp" +IDB_INSTANCE BITMAP DISCARDABLE "instance.bmp" + +///////////////////////////////////////////////////////////////////////////// +// +// REGISTRY +// + +IDR_COMMDIALOG REGISTRY DISCARDABLE "CommDialog.rgs" +IDR_OVERLAPPEDWINDOW REGISTRY DISCARDABLE "OverlappedWindow.rgs" +IDR_CONTROL REGISTRY DISCARDABLE "Control.rgs" +IDR_CANVAS REGISTRY DISCARDABLE "Draw.rgs" +IDR_LAYER REGISTRY DISCARDABLE "Layer.rgs" +IDR_FORM REGISTRY DISCARDABLE "Form.rgs" +IDR_EVENT REGISTRY DISCARDABLE "Event.rgs" +IDR_INSTANCE REGISTRY DISCARDABLE "Instance.rgs" +IDR_ENUMSELECT REGISTRY DISCARDABLE "EnumSelect.rgs" +IDR_TREEITEM REGISTRY DISCARDABLE "TreeItem.rgs" +IDR_OBJECTMAP REGISTRY DISCARDABLE "ObjectMap.rgs" +IDR_SHELL REGISTRY DISCARDABLE "Shell.rgs" +IDR_SHELLEXECOBJ REGISTRY DISCARDABLE "ShellExecObj.rgs" +IDR_OBJECTVECTOR REGISTRY DISCARDABLE "ObjectVector.rgs" +IDR_PROFILESECTION REGISTRY DISCARDABLE "ProfileSection.rgs" +IDR_PARSENAME REGISTRY DISCARDABLE "ParseName.rgs" +IDR_PRIVATEPROFILE REGISTRY DISCARDABLE "PrivateProfile.rgs" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_PROJNAME "SeraphyScriptTools" + IDS_ERR_LAYERBOUND "ƒŒƒCƒ„[‚ª”jŠü‚³‚ê‚Ä‚¢‚é‚©AƒŒƒCƒ„[”͈͂𒴂¦‚Ä‚¢‚Ü‚·BƒŒƒCƒ„[‚Í0`255‚͈̔͂Ŏw’肵‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB" + IDS_ERR_CREATEDWND "‚·‚łɃEƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚Ü‚·B" + IDS_ERR_NODEFPRINTER "Šù’è‚̃vƒŠƒ“ƒ^‚ª‚݂‚©‚è‚Ü‚¹‚ñB" + IDS_ERR_NEED2DIM "ƒ|ƒŠƒSƒ“‚ÌŽw’è‚É‚Í2xN‚Ì“ñŽŸŒ³VARIANT”z—ñ‚ð“n‚³‚È‚¯‚ê‚΂Ȃè‚Ü‚¹‚ñB(N‚Í3ˆÈã‚Å‚ ‚é•K—v‚ª‚ ‚è‚Ü‚·B)" + IDS_ERR_MAXCONTROL "ƒRƒ“ƒgƒ[ƒ‹‚ð‚±‚êˆÈã‚‚­‚ê‚Ü‚¹‚ñB" + IDS_ERR_DESTROYED "ƒEƒBƒ“ƒhƒE‚ª–¢ì¬‚©”jŠü‚³‚ê‚Ä‚¨‚èA‚±‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚ÍŽg—p‚Å‚«‚Ü‚¹‚ñ" + IDS_ERR_NOCREATEMENU "ƒƒjƒ…[‚ªì¬‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ" + IDS_ERR_PRINTERSETTING "ƒvƒŠƒ“ƒ^‚̐ݒè‚ÉŽ¸”s‚µ‚Ü‚µ‚½" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ERR_NOTSUPPORTCONTROL + "ƒRƒ“ƒgƒ[ƒ‹‚ÌŽí—Þ‚ªˆÙ‚Ȃ邽‚߁AŽw’肳‚ꂽ‘€ì‚̓Tƒ|[ƒg‚³‚ê‚Ä‚¢‚Ü‚¹‚ñB" + IDS_ERR_RANDEOUT "Žw’肳‚ꂽ€–ڂ͔͈͊O‚Å‚·" + IDS_ERR_TREEERROR "ƒcƒŠ[ƒrƒ…[‚Ü‚½‚́A‚±‚̃AƒCƒeƒ€‚Í”jŠü‚³‚ꂽ‚©–³Œø‚Å‚·B" + IDS_ERR_PROFILEPATH "‰Šú‰»ƒtƒ@ƒCƒ‹‚ւ̃pƒX‚ª•s³‚Å‚·" + IDS_ERR_PICTURELOADFAIL "ƒsƒNƒ`ƒƒ[‚ðƒ[ƒh‚Å‚«‚Ü‚¹‚ñ" +END + +#endif // “ú–{Œê resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +1 TYPELIB "SeraphyScriptTools.tlb" + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/SeraphyScriptTools.sln b/SeraphyScriptTools.sln new file mode 100644 index 0000000..99ca8c9 --- /dev/null +++ b/SeraphyScriptTools.sln @@ -0,0 +1,33 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SeraphyScriptTools", "SeraphyScriptTools.vcxproj", "{06035D5C-5F95-47F2-88B4-D614B0E06D2F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release MinDependency|Win32 = Release MinDependency|Win32 + Release MinSize|Win32 = Release MinSize|Win32 + Unicode Debug|Win32 = Unicode Debug|Win32 + Unicode Release MinDependency|Win32 = Unicode Release MinDependency|Win32 + Unicode Release MinSize|Win32 = Unicode Release MinSize|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Debug|Win32.ActiveCfg = Debug|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Debug|Win32.Build.0 = Debug|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Release MinDependency|Win32.ActiveCfg = Release MinDependency|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Release MinDependency|Win32.Build.0 = Release MinDependency|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Release MinSize|Win32.ActiveCfg = Release MinSize|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Release MinSize|Win32.Build.0 = Release MinSize|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Unicode Release MinDependency|Win32.ActiveCfg = Unicode Release MinDependency|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Unicode Release MinDependency|Win32.Build.0 = Unicode Release MinDependency|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Unicode Release MinSize|Win32.ActiveCfg = Unicode Release MinSize|Win32 + {06035D5C-5F95-47F2-88B4-D614B0E06D2F}.Unicode Release MinSize|Win32.Build.0 = Unicode Release MinSize|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SeraphyScriptTools.vcproj b/SeraphyScriptTools.vcproj new file mode 100644 index 0000000..15bad66 --- /dev/null +++ b/SeraphyScriptTools.vcproj @@ -0,0 +1,704 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SeraphyScriptTools.vcxproj b/SeraphyScriptTools.vcxproj new file mode 100644 index 0000000..252cbc8 --- /dev/null +++ b/SeraphyScriptTools.vcxproj @@ -0,0 +1,505 @@ + + + + + Debug + Win32 + + + Release MinDependency + Win32 + + + Release MinSize + Win32 + + + Unicode Debug + Win32 + + + Unicode Release MinDependency + Win32 + + + Unicode Release MinSize + Win32 + + + + + + AtlProj + {06035D5C-5F95-47F2-88B4-D614B0E06D2F} + + + + DynamicLibrary + v120 + false + Unicode + + + DynamicLibrary + v120 + false + Dynamic + MultiByte + + + DynamicLibrary + v120 + false + Dynamic + Unicode + + + DynamicLibrary + v120 + false + MultiByte + + + DynamicLibrary + v120 + false + Static + Unicode + + + DynamicLibrary + v120 + false + Static + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + .\ReleaseMinDependency\ + .\ReleaseMinDependency\ + false + + + .\ReleaseUMinDependency\ + .\ReleaseUMinDependency\ + false + + + .\Debug\ + .\Debug\ + true + + + .\ReleaseUMinSize\ + .\ReleaseUMinSize\ + false + + + .\ReleaseMinSize\ + .\ReleaseMinSize\ + false + + + .\DebugU\ + .\DebugU\ + true + + + + MinSpace + OnlyExplicitInline + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + stdafx.h + .\ReleaseMinDependency/SeraphyScriptTools.pch + .\ReleaseMinDependency/ + .\ReleaseMinDependency/ + .\ReleaseMinDependency/ + Level3 + true + + + 登録を行っています + regsvr32 /s /c "$(TargetPath)" +echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" + + $(OutDir)regsvr32.trg;%(Outputs) + + + /MACHINE:I386 %(AdditionalOptions) + comctl32.lib;odbc32.lib;odbccp32.lib;version.lib;%(AdditionalDependencies) + .\ReleaseMinDependency/SeraphyScriptTools.dll + true + .\SeraphyScriptTools.def + .\ReleaseMinDependency/SeraphyScriptTools.pdb + Windows + .\ReleaseMinDependency/SeraphyScriptTools.lib + + + .\ReleaseMinDependency/SeraphyScriptTools.tlb + + + NDEBUG;%(PreprocessorDefinitions) + 0x0411 + + + + + OnlyExplicitInline + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + stdafx.h + .\ReleaseUMinDependency/SeraphyScriptTools.pch + .\ReleaseUMinDependency/ + .\ReleaseUMinDependency/ + .\ReleaseUMinDependency/ + Level3 + true + + + 登録を行っています + if "%25OS%25"=="" goto NOTNT +if not "%25OS%25"=="Windows_NT" goto NOTNT +regsvr32 /s /c "$(TargetPath)" +echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" +goto end +:NOTNT +echo 警告 : Windows 95 に Unicode DLL を登録することはできません +:end + + $(OutDir)regsvr32.trg;%(Outputs) + + + /MACHINE:I386 %(AdditionalOptions) + comctl32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + .\ReleaseUMinDependency/SeraphyScriptTools.dll + true + .\SeraphyScriptTools.def + .\ReleaseUMinDependency/SeraphyScriptTools.pdb + Windows + .\ReleaseUMinDependency/SeraphyScriptTools.lib + + + .\ReleaseUMinDependency/SeraphyScriptTools.tlb + + + NDEBUG;%(PreprocessorDefinitions) + 0x0411 + + + + + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + Use + stdafx.h + .\Debug/SeraphyScriptTools.pch + .\Debug/ + .\Debug/ + .\Debug/ + Level3 + true + EditAndContinue + + + 登録を行っています + regsvr32 /s /c "$(TargetPath)" +echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" + + $(OutDir)regsvr32.trg;%(Outputs) + + + /MACHINE:I386 %(AdditionalOptions) + comctl32.lib;odbc32.lib;odbccp32.lib;version.lib;%(AdditionalDependencies) + .\Debug/SeraphyScriptTools.dll + true + .\SeraphyScriptTools.def + true + .\Debug/SeraphyScriptTools.pdb + Windows + .\Debug/SeraphyScriptTools.lib + + + .\Debug/SeraphyScriptTools.tlb + + + _DEBUG;%(PreprocessorDefinitions) + 0x0411 + + + + + OnlyExplicitInline + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + stdafx.h + .\ReleaseUMinSize/SeraphyScriptTools.pch + .\ReleaseUMinSize/ + .\ReleaseUMinSize/ + .\ReleaseUMinSize/ + Level3 + true + + + 登録を行っています + if "%25OS%25"=="" goto NOTNT +if not "%25OS%25"=="Windows_NT" goto NOTNT +regsvr32 /s /c "$(TargetPath)" +echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" +goto end +:NOTNT +echo 警告 : Windows 95 に Unicode DLL を登録することはできません +:end + + $(OutDir)regsvr32.trg;%(Outputs) + + + /MACHINE:I386 %(AdditionalOptions) + comctl32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + .\ReleaseUMinSize/SeraphyScriptTools.dll + true + .\SeraphyScriptTools.def + .\ReleaseUMinSize/SeraphyScriptTools.pdb + Windows + .\ReleaseUMinSize/SeraphyScriptTools.lib + + + .\ReleaseUMinSize/SeraphyScriptTools.tlb + + + NDEBUG;%(PreprocessorDefinitions) + 0x0411 + + + + + OnlyExplicitInline + WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + MultiThreaded + true + Use + stdafx.h + .\ReleaseMinSize/SeraphyScriptTools.pch + .\ReleaseMinSize/ + .\ReleaseMinSize/ + .\ReleaseMinSize/ + Level3 + true + + + 登録を行っています + regsvr32 /s /c "$(TargetPath)" +echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" + + $(OutDir)regsvr32.trg;%(Outputs) + + + /MACHINE:I386 %(AdditionalOptions) + comctl32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + .\ReleaseMinSize/SeraphyScriptTools.dll + true + .\SeraphyScriptTools.def + .\ReleaseMinSize/SeraphyScriptTools.pdb + Windows + .\ReleaseMinSize/SeraphyScriptTools.lib + + + .\ReleaseMinSize/SeraphyScriptTools.tlb + + + NDEBUG;%(PreprocessorDefinitions) + 0x0411 + + + + + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + Use + stdafx.h + .\DebugU/SeraphyScriptTools.pch + .\DebugU/ + .\DebugU/ + .\DebugU/ + Level3 + true + EditAndContinue + + + 登録を行っています + if "%25OS%25"=="" goto NOTNT +if not "%25OS%25"=="Windows_NT" goto NOTNT +regsvr32 /s /c "$(TargetPath)" +echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" +goto end +:NOTNT +echo 警告 : Windows 95 に Unicode DLL を登録することはできません +:end + + $(OutDir)regsvr32.trg;%(Outputs) + + + /MACHINE:I386 %(AdditionalOptions) + comctl32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + .\DebugU/SeraphyScriptTools.dll + true + .\SeraphyScriptTools.def + true + .\DebugU/SeraphyScriptTools.pdb + Windows + .\DebugU/SeraphyScriptTools.lib + + + .\DebugU/SeraphyScriptTools.tlb + + + _DEBUG;%(PreprocessorDefinitions) + 0x0411 + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + true + .\SeraphyScriptTools.tlb + SeraphyScriptTools.h + SeraphyScriptTools_i.c + true + .\SeraphyScriptTools.tlb + SeraphyScriptTools.h + SeraphyScriptTools_i.c + true + .\SeraphyScriptTools.tlb + SeraphyScriptTools.h + SeraphyScriptTools_i.c + true + .\SeraphyScriptTools.tlb + SeraphyScriptTools.h + SeraphyScriptTools_i.c + true + .\SeraphyScriptTools.tlb + SeraphyScriptTools.h + SeraphyScriptTools_i.c + true + .\SeraphyScriptTools.tlb + SeraphyScriptTools.h + SeraphyScriptTools_i.c + + + + + $(OUTDIR) + $(OUTDIR) + $(OUTDIR) + $(OUTDIR) + $(OUTDIR) + $(OUTDIR) + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SeraphyScriptTools.vcxproj.filters b/SeraphyScriptTools.vcxproj.filters new file mode 100644 index 0000000..4ca2aed --- /dev/null +++ b/SeraphyScriptTools.vcxproj.filters @@ -0,0 +1,192 @@ + + + + + {5b6886f1-43f7-4711-a6cb-4529f348fc7f} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {9f680007-8bae-4d75-ade9-f6df0105c5ef} + h;hpp;hxx;hm;inl + + + {17e6c619-e994-44a7-8559-b6ed1a1bb02c} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + Resource Files + + + + + Source Files + + + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/SeraphyScriptToolsCP.h b/SeraphyScriptToolsCP.h new file mode 100644 index 0000000..fc29bb2 --- /dev/null +++ b/SeraphyScriptToolsCP.h @@ -0,0 +1,1115 @@ +#ifndef _SERAPHYSCRIPTTOOLSCP_H_ +#define _SERAPHYSCRIPTTOOLSCP_H_ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +template +class CProxy_IOverlappedWindowEvents : public IConnectionPointImpl +{ + //Warning this class may be recreated by the wizard. +public: + HRESULT Fire_OnClick() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0xa, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnRClick() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0xb, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnDblClick() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0xc, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnRDblClick() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0xd, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnSize() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0xe, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnCommand() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0xf, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnDropFiles() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x10, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnMouseMove() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x11, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnClickOut() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x12, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnRClickOut() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x13, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnClickCancel() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x14, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnRClickCancel() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x15, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnTimer() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x16, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnOK() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x17, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnCancel() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x18, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnExit() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x19, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_InitWindow() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x1a, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_ExitWindow() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x1b, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnClickEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x6e, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnRClickEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x6f, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnDblClickEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x70, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnRDblClickEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x71, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnSizeEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x72, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnCommandEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x73, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnDropFilesEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x74, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnMouseMoveEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x75, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnClickOutEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x76, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnRClickOutEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x77, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnClickCancelEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x78, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnRClickCancelEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x79, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnTimerEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x7a, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnOKEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x7b, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnCancelEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x7c, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnExitEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x7d, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_InitWindowEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x7e, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_ExitWindowEx(IUnknown * varObj) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = varObj; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x7f, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnContextMenu() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x80, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnContextMenuEx(IUnknown * punkVal) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = punkVal; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x81, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnContextDelete() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x82, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnContextDeleteEx(IUnknown * punkVal) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = punkVal; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x83, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnKeydown() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x84, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnKeydownEx(IUnknown * punkVal) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = punkVal; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x85, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } + HRESULT Fire_OnKeydown2() + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + DISPPARAMS disp = { NULL, NULL, 0, 0 }; + pDispatch->Invoke(0x86, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + return varResult.scode; + + } + HRESULT Fire_OnKeydown2Ex(IUnknown * punkVal) + { + CComVariant varResult; + T* pT = static_cast(this); + int nConnectionIndex; + CComVariant* pvars = new CComVariant[1]; + int nConnections = m_vec.GetSize(); + + for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++) + { + pT->Lock(); + CComPtr sp = m_vec.GetAt(nConnectionIndex); + pT->Unlock(); + IDispatch* pDispatch = reinterpret_cast(sp.p); + if (pDispatch != NULL) + { + VariantClear(&varResult); + pvars[0] = punkVal; + DISPPARAMS disp = { pvars, NULL, 1, 0 }; + pDispatch->Invoke(0x87, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL); + } + } + delete[] pvars; + return varResult.scode; + + } +}; +#endif \ No newline at end of file diff --git a/SeraphyScriptToolsps.def b/SeraphyScriptToolsps.def new file mode 100644 index 0000000..344631c --- /dev/null +++ b/SeraphyScriptToolsps.def @@ -0,0 +1,11 @@ + +LIBRARY "SeraphyScriptToolsPS" + +DESCRIPTION 'Proxy/Stub DLL' + +EXPORTS + DllGetClassObject @1 PRIVATE + DllCanUnloadNow @2 PRIVATE + GetProxyDllInfo @3 PRIVATE + DllRegisterServer @4 PRIVATE + DllUnregisterServer @5 PRIVATE diff --git a/Shell.cpp b/Shell.cpp new file mode 100644 index 0000000..5b5968e --- /dev/null +++ b/Shell.cpp @@ -0,0 +1,846 @@ +// Shell.cpp : CShell ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "Shell.h" +#include "generic.h" +#include +using namespace std; + +///////////////////////////////////////////////////////////////////////////// +// CShell + +STDMETHODIMP CShell::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ISeraphyScriptTools_Shell + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CShell::ShellExecute(VARIANT path, VARIANT param, VARIANT initdir, VARIANT show, VARIANT *punkVal) +{ + CComVariant varPath,varParam,varInitDir,varMode; + CHAR szPath[MAX_PATH] = { 0 }; + CHAR szInitDir[MAX_PATH] = { 0 }; + int nShow = SW_SHOWNORMAL; + LPSTR pBuf = NULL; + if(varPath.ChangeType(VT_BSTR,&path) == S_OK){ + WideCharToMultiByte(GetACP(),0,varPath.bstrVal,-1,szPath,MAX_PATH,NULL,NULL); + } + if(varParam.ChangeType(VT_BSTR,¶m) == S_OK){ + int needsize = WideCharToMultiByte(GetACP(),0,varParam.bstrVal,-1,NULL,0,NULL,NULL); + pBuf = new CHAR[needsize+1]; + WideCharToMultiByte(GetACP(),0,varParam.bstrVal,-1,pBuf,needsize,NULL,NULL); + } + if(varInitDir.ChangeType(VT_BSTR,&initdir) == S_OK){ + WideCharToMultiByte(GetACP(),0,varInitDir.bstrVal,-1,szInitDir,MAX_PATH,NULL,NULL); + } + if(varMode.ChangeType(VT_I2,&show) == S_OK){ + switch(varMode.iVal) + { + case 0: + nShow = SW_HIDE; + break; + case 1: + default: + nShow = SW_SHOWNORMAL; + break; + case 2: + nShow = SW_SHOWMAXIMIZED; + break; + case 3: + nShow = SW_SHOWMINIMIZED; + break; + case 4: + nShow = SW_SHOWMINNOACTIVE; + break; + } + } + // + SHELLEXECUTEINFO info = {0}; + info.cbSize = sizeof(SHELLEXECUTEINFO); + info.fMask = SEE_MASK_DOENVSUBST | SEE_MASK_NOCLOSEPROCESS; + info.hwnd = GetMainWindow(); + info.lpVerb = "OPEN"; + info.lpFile = szPath; + info.lpParameters = pBuf; + info.lpDirectory = szInitDir; + info.nShow = nShow; + if(ShellExecuteEx(&info)){ + // ShellExecObj‚̐¶¬ + CComObject* pExec = NULL; + if(pExec->CreateInstance(&pExec) == S_OK){ + pExec->m_hProcess = info.hProcess; + IUnknown* pUnk = NULL; + pExec->QueryInterface(IID_IUnknown,(void**)&pUnk); + punkVal->vt = VT_UNKNOWN; + punkVal->punkVal = pUnk; + } + } + if(pBuf){ + delete[]pBuf; + } + return S_OK; +} + +///////////////////////////////////////////////////////////////////////////// +// CShellExecObj + + +STDMETHODIMP CShellExecObj::Wait(VARIANT tim, VARIANT *pVal) +{ + ::VariantInit(pVal); + BOOL bExit = true; + if(m_hProcess){ + CComVariant varTim; + DWORD dwWaitTime = 0; + if(varTim.ChangeType(VT_I4,&tim) == S_OK){ + if(varTim.lVal < 0){ + // –³ŒÀ‚Ü‚¿ + dwWaitTime = INFINITE; + } + else{ + dwWaitTime = (DWORD)varTim.lVal; + } + } + DWORD ret = WaitForSingleObject(m_hProcess,dwWaitTime); + if(ret == WAIT_TIMEOUT){ + // ƒvƒƒZƒX‚͏I—¹‚µ‚Ä‚¢‚È‚¢ + bExit = false; + } + } + pVal->vt = VT_BOOL; + pVal->boolVal = bExit?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CShellExecObj::get_ExitCode(long *pVal) +{ + if(m_hProcess){ + GetExitCodeProcess(m_hProcess,(DWORD*)pVal); + } + return S_OK; +} + +class SPECIALFOLDERPAIR +{ +public: + SPECIALFOLDERPAIR(LPCSTR arg_name,int arg_id){ + name = arg_name; + id = arg_id; + } + LPCSTR name; + int id; +}; + +STDMETHODIMP CShell::GetSpecialFolderLocations(IUnknown *punkVal) +{ + if(!punkVal){ + return E_FAIL; + } + IObjectMap* pMap = NULL; + if(punkVal->QueryInterface(IID_IObjectMap,(void**)&pMap) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + // ƒVƒXƒeƒ€ƒo[ƒWƒ‡ƒ“ƒ`ƒFƒbƒN + BOOL bWinNT; + get_IsWindowNT(&bWinNT); + // NTŒn‚̏ꍇ‚Æ9xŒn‚̏ꍇ‚Ƃ͎擾‚Å‚«‚éƒtƒHƒ‹ƒ_‚ÌŽí—Þ‚ª‚¿‚ª‚¤‚Ì‚Å•ª‚¯‚Ä‚¨‚­ + list lst; + if(bWinNT){ + // WINNT + lst.push_back(SPECIALFOLDERPAIR("ADMINTOOLS",CSIDL_ADMINTOOLS)); + lst.push_back(SPECIALFOLDERPAIR("ALTSTARTUP",CSIDL_ALTSTARTUP)); + lst.push_back(SPECIALFOLDERPAIR("APPDATA",CSIDL_APPDATA)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_ADMINTOOLS",CSIDL_COMMON_ADMINTOOLS)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_ALTSTARTUP",CSIDL_COMMON_ALTSTARTUP)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_APPDATA",CSIDL_COMMON_APPDATA)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_DESKTOPDIRECTORY",CSIDL_COMMON_DESKTOPDIRECTORY)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_DOCUMENTS",CSIDL_COMMON_DOCUMENTS)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_FAVORITES",CSIDL_COMMON_FAVORITES)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_PROGRAMS",CSIDL_COMMON_PROGRAMS)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_STARTMENU",CSIDL_COMMON_STARTMENU)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_STARTUP",CSIDL_COMMON_STARTUP)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_TEMPLATES",CSIDL_COMMON_TEMPLATES)); + lst.push_back(SPECIALFOLDERPAIR("COOKIES",CSIDL_COOKIES)); + lst.push_back(SPECIALFOLDERPAIR("DESKTOPDIRECTORY",CSIDL_DESKTOPDIRECTORY)); + lst.push_back(SPECIALFOLDERPAIR("FAVORITES",CSIDL_FAVORITES)); + lst.push_back(SPECIALFOLDERPAIR("FONTS",CSIDL_FONTS )); + lst.push_back(SPECIALFOLDERPAIR("HISTORY",CSIDL_HISTORY)); + lst.push_back(SPECIALFOLDERPAIR("INTERNET_CACHE ",CSIDL_INTERNET_CACHE )); + lst.push_back(SPECIALFOLDERPAIR("LOCAL_APPDATA ",CSIDL_LOCAL_APPDATA )); + lst.push_back(SPECIALFOLDERPAIR("MYPICTURES",CSIDL_MYPICTURES)); + lst.push_back(SPECIALFOLDERPAIR("NETHOOD",CSIDL_NETHOOD)); + lst.push_back(SPECIALFOLDERPAIR("PERSONAL",CSIDL_PERSONAL)); + lst.push_back(SPECIALFOLDERPAIR("PRINTHOOD",CSIDL_PRINTHOOD)); + lst.push_back(SPECIALFOLDERPAIR("PROFILE ",CSIDL_PROFILE )); + lst.push_back(SPECIALFOLDERPAIR("PROGRAM_FILES",CSIDL_PROGRAM_FILES)); + lst.push_back(SPECIALFOLDERPAIR("PROGRAM_FILES_COMMON",CSIDL_PROGRAM_FILES_COMMON)); + lst.push_back(SPECIALFOLDERPAIR("PROGRAMS",CSIDL_PROGRAMS)); + lst.push_back(SPECIALFOLDERPAIR("RECENT",CSIDL_RECENT )); + lst.push_back(SPECIALFOLDERPAIR("SENDTO",CSIDL_SENDTO )); + lst.push_back(SPECIALFOLDERPAIR("STARTMENU",CSIDL_STARTMENU)); + lst.push_back(SPECIALFOLDERPAIR("STARTUP",CSIDL_STARTUP)); + lst.push_back(SPECIALFOLDERPAIR("SYSTEM",CSIDL_SYSTEM)); + lst.push_back(SPECIALFOLDERPAIR("TEMPLATES",CSIDL_TEMPLATES)); + lst.push_back(SPECIALFOLDERPAIR("WINDOWS",CSIDL_WINDOWS)); + } + else{ + // Win9x + lst.push_back(SPECIALFOLDERPAIR("ADMINTOOLS",CSIDL_ADMINTOOLS)); + lst.push_back(SPECIALFOLDERPAIR("ALTSTARTUP",CSIDL_ALTSTARTUP)); + lst.push_back(SPECIALFOLDERPAIR("APPDATA",CSIDL_APPDATA)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_ADMINTOOLS",CSIDL_ADMINTOOLS)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_ALTSTARTUP",CSIDL_ALTSTARTUP)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_APPDATA",CSIDL_APPDATA)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_DESKTOPDIRECTORY",CSIDL_DESKTOPDIRECTORY)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_DOCUMENTS",CSIDL_COMMON_DOCUMENTS)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_FAVORITES",CSIDL_FAVORITES)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_PROGRAMS",CSIDL_PROGRAMS)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_STARTMENU",CSIDL_STARTMENU)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_STARTUP",CSIDL_STARTUP)); + lst.push_back(SPECIALFOLDERPAIR("COMMON_TEMPLATES",CSIDL_TEMPLATES)); + lst.push_back(SPECIALFOLDERPAIR("COOKIES",CSIDL_COOKIES)); + lst.push_back(SPECIALFOLDERPAIR("DESKTOPDIRECTORY",CSIDL_DESKTOPDIRECTORY)); + lst.push_back(SPECIALFOLDERPAIR("FAVORITES",CSIDL_FAVORITES)); + lst.push_back(SPECIALFOLDERPAIR("FONTS",CSIDL_FONTS )); + lst.push_back(SPECIALFOLDERPAIR("HISTORY",CSIDL_HISTORY)); + lst.push_back(SPECIALFOLDERPAIR("INTERNET_CACHE ",CSIDL_INTERNET_CACHE )); + lst.push_back(SPECIALFOLDERPAIR("LOCAL_APPDATA ",CSIDL_LOCAL_APPDATA )); + lst.push_back(SPECIALFOLDERPAIR("MYPICTURES",CSIDL_MYPICTURES)); + lst.push_back(SPECIALFOLDERPAIR("NETHOOD",CSIDL_NETHOOD)); + lst.push_back(SPECIALFOLDERPAIR("PERSONAL",CSIDL_PERSONAL)); + lst.push_back(SPECIALFOLDERPAIR("PRINTHOOD",CSIDL_PRINTHOOD)); + lst.push_back(SPECIALFOLDERPAIR("PROFILE ",CSIDL_PROFILE )); + lst.push_back(SPECIALFOLDERPAIR("PROGRAM_FILES",CSIDL_PROGRAM_FILES)); + lst.push_back(SPECIALFOLDERPAIR("PROGRAM_FILES_COMMON",CSIDL_PROGRAM_FILES)); + lst.push_back(SPECIALFOLDERPAIR("PROGRAMS",CSIDL_PROGRAMS)); + lst.push_back(SPECIALFOLDERPAIR("RECENT",CSIDL_RECENT )); + lst.push_back(SPECIALFOLDERPAIR("SENDTO",CSIDL_SENDTO )); + lst.push_back(SPECIALFOLDERPAIR("STARTMENU",CSIDL_STARTMENU)); + lst.push_back(SPECIALFOLDERPAIR("STARTUP",CSIDL_STARTUP)); + lst.push_back(SPECIALFOLDERPAIR("SYSTEM",CSIDL_SYSTEM)); + lst.push_back(SPECIALFOLDERPAIR("TEMPLATES",CSIDL_TEMPLATES)); + lst.push_back(SPECIALFOLDERPAIR("WINDOWS",CSIDL_WINDOWS)); + } + list::iterator p = lst.begin(); + while(p != lst.end()){ + LPITEMIDLIST pid = NULL; + if(SHGetSpecialFolderLocation(NULL,(*p).id,&pid) == NOERROR){ + CHAR buf[MAX_PATH] = {0}; + if(SHGetPathFromIDList(pid,buf)){ + CComVariant key((LPCSTR)(*p).name); + CComVariant value((LPCSTR)buf); + pMap->put_Value(key,value); + } + m_pMalloc->Free(pid); + } + p++; + } + pMap->Release(); + return S_OK; +} + +STDMETHODIMP CShell::get_IsWindowNT(BOOL *pVal) +{ + OSVERSIONINFO vinfo = {0}; + vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&vinfo); + *pVal = (vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT); + return S_OK; +} + + +STDMETHODIMP CShell::get_WindowsVersion(long *pVal) +{ + // win9x‚Í0ANT‚̓o[ƒWƒ‡ƒ“‚ð•Ô‚· + *pVal = 0; + OSVERSIONINFO vinfo = {0}; + vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&vinfo); + if(vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT){ + *pVal = (long)vinfo.dwMajorVersion; + } + return S_OK; +} + +STDMETHODIMP CShell::GetDLLVersion(VARIANT text,VARIANT min, VARIANT *pVal) +{ + CComVariant varText,varMin; + CHAR lpszDllName[MAX_PATH] = { 0 }; + if(varText.ChangeType(VT_BSTR,&text) == S_OK){ + WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,lpszDllName,MAX_PATH,NULL,NULL); + } + BOOL bMin = false; + if(varMin.ChangeType(VT_I2,&min) == S_OK){ + bMin = varMin.iVal; + } + CComVariant ret; + DWORD siz = GetFileVersionInfoSize(lpszDllName,0); + if(siz){ + LPBYTE pBuf = new BYTE[siz+1]; + if(GetFileVersionInfo(lpszDllName,0,siz,pBuf)){ + // ƒo[ƒWƒ‡ƒ“î•ñ‚ðŽæ“¾‚·‚é + VS_FIXEDFILEINFO* pverInfo; + UINT sz = 0; + if(VerQueryValue(pBuf,"\\",(void**)&pverInfo,&sz)){ + // ƒo[ƒWƒ‡ƒ“‚ðŠm”F‰Â”\‚Å‚ ‚é + CHAR mes[256]; + if(bMin){ + // Ú× + wsprintf(mes,"%d.%d.%d.%d" + ,HIWORD(pverInfo->dwFileVersionMS),LOWORD(pverInfo->dwFileVersionMS) + ,HIWORD(pverInfo->dwFileVersionLS),LOWORD(pverInfo->dwFileVersionLS)); + } + else{ + // ’ʏí + wsprintf(mes,"%d.%d" + ,HIWORD(pverInfo->dwFileVersionMS),LOWORD(pverInfo->dwFileVersionMS)); + } + ret = (LPCSTR)mes; + } + } + delete[]pBuf; + } + ret.Detach(pVal); + return S_OK; +} + +STDMETHODIMP CShell::ParseName(VARIANT text, VARIANT *pVal) +{ + ::VariantInit(pVal); + CComVariant varText; + if(varText.ChangeType(VT_BSTR,&text) == S_OK){ + CComObject* pParse = NULL; + if(pParse->CreateInstance(&pParse) == S_OK){ + pParse->m_bstr_path = (LPCWSTR)varText.bstrVal; + IUnknown* pUnk = NULL; + if(pParse->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){ + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + } + return S_OK; +} + +///////////////////////////////////////////////////////////////////////////// +// CParseName + +STDMETHODIMP CParseName::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ISeraphyScriptTool_ParseName + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CParseName::get_PathName(BSTR *pVal) +{ + *pVal = m_bstr_path.copy(); + return S_OK; +} + +STDMETHODIMP CParseName::put_PathName(BSTR newVal) +{ + m_bstr_path = newVal; + return S_OK; +} + +STDMETHODIMP CParseName::get_FileName(BSTR *pVal) +{ + LPWSTR p = m_bstr_path; + while(*p)p++; + while(p > (LPCWSTR)m_bstr_path){ + if(*p == '\\' || *p == '/'){ + // ––”ö‚©‚çÅ‰‚É”­Œ©‚³‚ꂽƒtƒHƒ‹ƒ_ƒvƒŒ[ƒX‚ÅŽ~‚Ü‚é + p++; + break; + } + p--; + } + *pVal = SysAllocString(p); + return S_OK; +} + +STDMETHODIMP CParseName::put_FileName(BSTR newVal) +{ + WCHAR buf[MAX_PATH]; + lstrcpyW(buf,m_bstr_path); + LPWSTR p = buf; + while(*p)p++; + while(p > buf){ + if(*p == '\\' || *p == '/'){ + // ––”ö‚©‚çÅ‰‚É”­Œ©‚³‚ꂽƒtƒHƒ‹ƒ_ƒvƒŒ[ƒX‚ÅŽ~‚Ü‚é + p++; + break; + } + p--; + } + lstrcpyW(p,newVal); + m_bstr_path = buf; + return S_OK; +} + +STDMETHODIMP CParseName::get_Extention(BSTR *pVal) +{ + BOOL bFind = false; + LPWSTR p = m_bstr_path; + while(*p)p++; + while(p > (LPCWSTR)m_bstr_path){ + if(*p == '.'){ + bFind = true; + p++; + break; + } + if(*p == '\\' || *p == '/'){ + // ƒtƒHƒ‹ƒ_ƒvƒŒ[ƒX‚Å’†Ž~‚·‚é + break; + } + p--; + } + if(!bFind){ + while(*p)p++; + } + *pVal = SysAllocString(p); + return S_OK; +} + +STDMETHODIMP CParseName::put_Extention(BSTR newVal) +{ + WCHAR buf[MAX_PATH]; + lstrcpyW(buf,m_bstr_path); + BOOL bFind = false; + LPWSTR p = buf; + while(*p)p++; + while(p > buf){ + if(*p == '.'){ + bFind = true; + p++; + break; + } + if(*p == '\\' || *p == '/'){ + // ƒtƒHƒ‹ƒ_ƒvƒŒ[ƒX‚Å’†Ž~‚·‚é + break; + } + p--; + } + if(!bFind){ + // ‰½‚à‚È‚¯‚ê‚Ζ–”ö‚ɒljÁ‚·‚é + while(*p)p++; + lstrcpyW(p,L"."); + } + lstrcpyW(p,newVal); + m_bstr_path = buf; + return S_OK; +} + +STDMETHODIMP CParseName::get_Name(BSTR *pVal) +{ + WCHAR buf[MAX_PATH]; + lstrcpyW(buf,m_bstr_path); + LPWSTR p = buf; + while(*p)p++; + while(p > buf){ + if(*p == '\\' || *p == '/'){ + p++; + break; + } + p--; + } + LPWSTR p2 = p; + while(*p2){ + if(*p2 == '.'){ + *p2 = 0; + break; + } + p2++; + } + *pVal = SysAllocString(p); + return S_OK; +} + +STDMETHODIMP CParseName::put_Name(BSTR newVal) +{ + WCHAR buf[MAX_PATH]; + WCHAR ext[MAX_PATH] = { 0 }; + lstrcpyW(buf,m_bstr_path); + LPWSTR p = buf; + while(*p)p++; + while(p > buf){ + if(*p == '\\' || *p == '/'){ + p++; + break; + } + p--; + } + LPWSTR p2 = p; + while(*p2){ + if(*p2 == '.'){ + p2++; + lstrcpyW(ext,p2); + break; + } + p2++; + } + lstrcpyW(p,newVal); + while(*p)p++; + *p++ = '.'; + lstrcpyW(p,ext); + m_bstr_path = buf; + return S_OK; +} + +STDMETHODIMP CParseName::get_Drive(BSTR *pVal) +{ + WCHAR buf[MAX_PATH]; + lstrcpyW(buf,m_bstr_path); + LPWSTR p = buf; + while(*p){ + if(*p == ':'){ + // ƒhƒ‰ƒCƒu‹æØ‚èA‚Ü‚½‚̓vƒƒgƒRƒ‹‚ð”­Œ©‚µ‚½ + *(p+1) = 0; + p = buf; + break; + } + p++; + } + *pVal = SysAllocString(p); + return S_OK; +} + +STDMETHODIMP CParseName::put_Drive(BSTR newVal) +{ + WCHAR buf[MAX_PATH]; + lstrcpyW(buf,newVal); + LPWSTR p2 = buf; + while(*p2)p2++; + LPWSTR p = m_bstr_path; + BOOL bFind = false; + while(*p){ + if(*p == ':'){ + // ƒhƒ‰ƒCƒu‹æØ‚èA‚Ü‚½‚̓vƒƒgƒRƒ‹‚ð”­Œ©‚µ‚½ + p++; + bFind = true; + break; + } + p++; + } + if(!bFind){ + p = m_bstr_path; + } + lstrcpyW(p2,p); + m_bstr_path = buf; + return S_OK; +} + +STDMETHODIMP CParseName::get_Directory(BSTR *pVal) +{ + WCHAR buf[MAX_PATH]; + LPWSTR p = m_bstr_path; + BOOL bFind = false; + while(*p){ + if(*p == ':'){ + // ƒhƒ‰ƒCƒu‹æØ‚èA‚Ü‚½‚̓vƒƒgƒRƒ‹‚ð”­Œ©‚µ‚½ + p++; + bFind = true; + break; + } + p++; + } + if(!bFind){ + p = m_bstr_path; + } + lstrcpyW(buf,p); + p = buf; + while(*p)p++; + while(p >= buf){ + if(*p == '\\' || *p== '/'){ + // ƒtƒHƒ‹ƒ_ƒvƒŒƒCƒX‚ð”­Œ©‚µ‚½ + if(p-1 > buf && (*(p-1) == '\\' || *(p-1) == '/')){ + // ƒlƒbƒgƒ[ƒNƒpƒX‚É“ž’B‚µ‚½ê‡‚Í–³Ž‹‚·‚é + break; + } + p++; + *p = 0; + break; + } + p--; + } + *pVal = SysAllocString(buf); + return S_OK; +} + +/////////////////////////////////////////////////// + +STDMETHODIMP CShell::get_Confirm(BOOL *pVal) +{ + *pVal = (m_bConfirm)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CShell::put_Confirm(BOOL newVal) +{ + m_bConfirm = newVal; + return S_OK; +} + +STDMETHODIMP CShell::get_Silent(BOOL *pVal) +{ + *pVal = (m_bSilent)?VB_TRUE:VB_FALSE; + return S_OK; +} + +STDMETHODIMP CShell::put_Silent(BOOL newVal) +{ + m_bSilent = newVal; + return S_OK; +} + +STDMETHODIMP CShell::Copy(VARIANT from, VARIANT to, VARIANT *pVal) +{ + return FileOperationCore(FO_COPY, 0, &from, &to, pVal); +} + +STDMETHODIMP CShell::CopyRenameOnCollision(VARIANT from, VARIANT to, VARIANT *pVal) +{ + return FileOperationCore(FO_COPY, FOF_RENAMEONCOLLISION, &from, &to, pVal); +} + +STDMETHODIMP CShell::Move(VARIANT from, VARIANT to, VARIANT *pVal) +{ + return FileOperationCore(FO_MOVE, 0, &from, &to, pVal); +} + +STDMETHODIMP CShell::Delete(VARIANT from,VARIANT *pVal) +{ + return FileOperationCore(FO_DELETE, 0, &from, NULL, pVal); +} + +HRESULT CShell::FileOperationCore(UINT wFunc, FILEOP_FLAGS flag, VARIANT *from, VARIANT *to, VARIANT *pResult) +{ + ::VariantInit(pResult); + CComVariant result; + CHAR szDest[MAX_PATH+2] = { 0 }; // double null + if(to){ + CComVariant varTo; + if(to->vt != VT_NULL && to->vt != VT_ERROR || to->vt == VT_EMPTY + || varTo.ChangeType(VT_BSTR,to) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + WideCharToMultiByte(GetACP(),0,varTo.bstrVal,-1,szDest,MAX_PATH,NULL,NULL); + } + LPSTR pFrom = CreateDNStringFromVariant(*from); + if(!pFrom){ + return DISP_E_TYPEMISMATCH; + } + SHFILEOPSTRUCT info = {0}; + info.fFlags = flag | FOF_ALLOWUNDO | (m_bSilent?FOF_SILENT:0) | (m_bConfirm?0:(FOF_NOCONFIRMMKDIR|FOF_NOCONFIRMATION)); + info.hwnd = GetMainWindow(); + info.pFrom = pFrom; + info.pTo = szDest; + info.wFunc = wFunc; + int ret = SHFileOperation(&info); + delete[]pFrom; + result = (bool)(!ret && !info.fAnyOperationsAborted); + result.Detach(pResult); + return S_OK; +} + +LPSTR CShell::CreateDNStringFromVariant(VARIANT &from) +{ + LPSTR pBuf = NULL; + CComVariant varFrom; + if(varFrom.ChangeType(VT_BSTR,&from) == S_OK){ + // BSTR‚É•ÏŠ·‰Â”\‚©? + int needsize = WideCharToMultiByte(GetACP(),0,varFrom.bstrVal,-1,NULL,0,NULL,NULL); + pBuf = new CHAR[needsize+2]; + WideCharToMultiByte(GetACP(),0,varFrom.bstrVal,-1,pBuf,needsize,NULL,NULL); + pBuf[needsize ] = 0; + pBuf[needsize+1] = 0; // double null + return pBuf; + } + else if(varFrom.ChangeType(VT_UNKNOWN,&from) == S_OK){ + // Unknown‚É•ÏŠ·‰Â”\‚©? + IObjectVector* pVector = NULL; + if(varFrom.punkVal->QueryInterface(IID_IObjectVector,(void**)&pVector) != S_OK){ + // IObjectVector‚Å‚Í‚È‚¢‚È‚çƒGƒ‰[ + return NULL; + } + // ”z—ñ‚ðŽæ“¾‚·‚é + long mx = 0; + pVector->get_Count(&mx); + long cnt = 0; + // ”z—ñ‘S‘̂̃TƒCƒY‚ð‹‚ß‚é + DWORD needsize = 0; + for(cnt = 0 ; cnt < mx ; cnt++){ + CComVariant tmp; + CComVariant idx((long)cnt); + pVector->get_Value(idx,&tmp); + if(tmp.ChangeType(VT_BSTR) != S_OK){ + // •¶Žš—ñ‚É•ÏŠ·•s‰Â”\ + return NULL; + } + needsize += WideCharToMultiByte(GetACP(),0,tmp.bstrVal,-1,NULL,0,NULL,NULL) + 1; + } + needsize += 1; // dobulenull + // ”z—ñ‚ðƒ_ƒuƒ‹ƒkƒ‹‚É“WŠJ‚·‚é + pBuf = new CHAR[needsize]; + LPSTR p = pBuf; + for(cnt = 0 ; cnt < mx ; cnt++){ + CComVariant tmp; + CComVariant idx((long)cnt); + pVector->get_Value(idx,&tmp); + if(tmp.ChangeType(VT_BSTR) == S_OK){ + int sz = WideCharToMultiByte(GetACP(),0,tmp.bstrVal,-1,p,MAX_PATH,NULL,NULL); + *(p + sz) = 0; + p += sz; + } + } + *p = 0; // dobule null + pVector->Release(); + return pBuf; + } + else{ + // SafeArray‚©? + VARTYPE vt = VT_EMPTY; + SAFEARRAY* pArray = GetArrayFromVariant(from,&vt); + if(!pArray || vt != VT_VARIANT){ + // SafeArray‚Å‚È‚¢‚©AŒ^‚ª‚¿‚ª‚¤ + return NULL; + } + long lb = 0; + long ub = 0; + int dm = SafeArrayGetDim(pArray); + SafeArrayGetLBound(pArray,1,&lb); // ¶‘¤‚Ì“Y‚¦Žš + SafeArrayGetUBound(pArray,1,&ub); + if(dm != 1 || lb != 0){ + // 1ŽŸŒ³”z—ñ‚Å‚È‚¢‚©A0ƒx[ƒX‚Å‚È‚¢ + return NULL; + } + DWORD needsize = 0; + long dim[1]; + long cnt; + // ƒoƒbƒtƒ@‚É•K—v‚ȃTƒCƒY‚ð‹‚ß‚é + for(cnt = 0 ; cnt <= ub ; cnt++){ + CComVariant tmp; + dim[0] = cnt; + SafeArrayGetElement(pArray,dim,&tmp); + if(tmp.ChangeType(VT_BSTR) != S_OK){ + // •¶Žš—ñ‚É•ÏŠ·•s‰Â”\ + return NULL; + } + needsize += WideCharToMultiByte(GetACP(),0,tmp.bstrVal,-1,NULL,0,NULL,NULL) + 1; + } + // ƒoƒbƒtƒ@‚ðŠm•Û‚µ“WŠJ‚·‚é + pBuf = new CHAR[needsize]; + LPSTR p = pBuf; + for(cnt = 0 ; cnt <= ub ; cnt++){ + CComVariant tmp; + dim[0] = cnt; + SafeArrayGetElement(pArray,dim,&tmp); + if(tmp.ChangeType(VT_BSTR) != S_OK){ + // •¶Žš—ñ‚É•ÏŠ·•s‰Â”\ + return NULL; + } + int sz = WideCharToMultiByte(GetACP(),0,tmp.bstrVal,-1,p,MAX_PATH,NULL,NULL); + *(p + sz) = 0; + p += sz; + } + *p = 0; + return pBuf; + } + return NULL; +} + +STDMETHODIMP CShell::EmptyRecycleBin(VARIANT dir) +{ + CComVariant varDir; + LPCSTR pTarget = NULL; + CHAR szPath[MAX_PATH]; + if(dir.vt == VT_NULL || dir.vt == VT_ERROR || dir.vt == VT_EMPTY){ + // ‚·‚ׂđΏۂƂ·‚é + pTarget = NULL; + } + if(varDir.ChangeType(VT_BSTR,&dir) == S_OK){ + // “Á’è‚̃hƒ‰ƒCƒu‚ðƒ^[ƒQƒbƒg‚·‚é + WideCharToMultiByte(GetACP(),0,varDir.bstrVal,-1,szPath,MAX_PATH,NULL,NULL); + pTarget = szPath; + } + else{ + // •ÏŠ·•s‰Â + return DISP_E_TYPEMISMATCH; + } + SHEmptyRecycleBin(NULL,pTarget,(m_bConfirm?0:SHERB_NOCONFIRMATION) | (m_bSilent?(SHERB_NOPROGRESSUI|SHERB_NOSOUND ):0)); + return S_OK; +} + +STDMETHODIMP CShell::RecentDocs(VARIANT text) +{ + CComVariant varText; + LPCSTR pTarget = NULL; + CHAR szPath[MAX_PATH]; + if(text.vt == VT_NULL || text.vt == VT_ERROR || text.vt == VT_EMPTY){ + // —š—ð‚ðƒNƒŠƒA‚·‚é + pTarget = NULL; + } + if(varText.ChangeType(VT_BSTR,&text) == S_OK){ + // “Á’è‚̃tƒ@ƒCƒ‹‚ð’ljÁ‚·‚é + WideCharToMultiByte(GetACP(),0,varText.bstrVal,-1,szPath,MAX_PATH,NULL,NULL); + pTarget = szPath; + } + else{ + // •ÏŠ·•s‰Â + return DISP_E_TYPEMISMATCH; + } + SHAddToRecentDocs(SHARD_PATH,pTarget); + return S_OK; +} + +STDMETHODIMP CShell::SetMainWindow(VARIANT varUnk) +{ + // Šù‘¶‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚̉ð•ú + if(m_pMainWindow){ + m_pMainWindow->Release(); + m_pMainWindow = NULL; + } + // ƒCƒ“ƒ^[ƒtƒFƒCƒX‚̎擾 + CComVariant tmp; + if(tmp.ChangeType(VT_UNKNOWN,&varUnk) == S_OK){ + if(tmp.punkVal->QueryInterface(IID_IOverlappedWindow,(void**)&m_pMainWindow) == S_OK){ + return S_OK; + } + } + return DISP_E_UNKNOWNINTERFACE; +} + +STDMETHODIMP CShell::IsExist(VARIANT name, VARIANT *pVal) +{ + CComVariant varName,varRet; + if(varName.ChangeType(VT_BSTR,&name) != S_OK){ + return DISP_E_TYPEMISMATCH; + } + CHAR szPath[MAX_PATH]; + WideCharToMultiByte(GetACP(),0,varName.bstrVal,-1,szPath,MAX_PATH,NULL,NULL); + DWORD attr = GetFileAttributes(szPath); + if(attr != (DWORD)-1){ + if(attr & FILE_ATTRIBUTE_DIRECTORY) + varRet = 2; + else + varRet = 1; + } + varRet.Detach(pVal); + return S_OK; +} diff --git a/Shell.h b/Shell.h new file mode 100644 index 0000000..cd42fe0 --- /dev/null +++ b/Shell.h @@ -0,0 +1,168 @@ +// Shell.h : CShell ‚̐錾 + +#ifndef __SHELL_H_ +#define __SHELL_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ + +///////////////////////////////////////////////////////////////////////////// +// CShell +class ATL_NO_VTABLE CShell : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CShell() + { + m_bConfirm = true; + m_bSilent = false; + // + m_pMainWindow = NULL; + m_pMalloc = NULL; + SHGetMalloc(&m_pMalloc); + } + void FinalRelease() + { + if(m_pMalloc){ + m_pMalloc->Release(); + m_pMalloc = NULL; + } + } + + HWND GetMainWindow() + { + HWND hWnd = NULL;//m_hStaticMainWindow; + if(m_pMainWindow){ + m_pMainWindow->get_HWND((long*)&hWnd); + } + return hWnd; + } + +DECLARE_REGISTRY_RESOURCEID(IDR_SHELL) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CShell) + COM_INTERFACE_ENTRY(ISeraphyScriptTools_Shell) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ISeraphyScriptTools_Shell +public: + STDMETHOD(IsExist)(/*[in]*/VARIANT name,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(SetMainWindow)(/*[in]*/VARIANT varUnk); + STDMETHOD(RecentDocs)(/*[in,optional]*/VARIANT text); + STDMETHOD(EmptyRecycleBin)(/*[in,optional]*/VARIANT dir); + BOOL m_bSilent; + BOOL m_bConfirm; + HRESULT FileOperationCore(UINT wFunc,FILEOP_FLAGS flag,VARIANT* from,VARIANT* to,VARIANT* pResult); + LPSTR CreateDNStringFromVariant(VARIANT& from); + STDMETHOD(get_Silent)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Silent)(/*[in]*/ BOOL newVal); + STDMETHOD(get_Confirm)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(put_Confirm)(/*[in]*/ BOOL newVal); + STDMETHOD(Delete)(/*[in]*/VARIANT from,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(Move)(/*[in]*/VARIANT from,/*[in]*/VARIANT to,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(CopyRenameOnCollision)(/*[in]*/VARIANT from,/*[in]*/VARIANT to,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(Copy)(/*[in]*/VARIANT from,/*[in]*/VARIANT to,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(ParseName)(/*[in,optional]*/VARIANT text,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(GetDLLVersion)(/*[in]*/VARIANT text,/*[in,optional]*/VARIANT min,/*[out,retval]*/VARIANT* pVal); + STDMETHOD(get_WindowsVersion)(/*[out, retval]*/ long *pVal); + STDMETHOD(get_IsWindowNT)(/*[out, retval]*/ BOOL *pVal); + STDMETHOD(GetSpecialFolderLocations)(/*[in]*/IUnknown* punkVal); + STDMETHOD(ShellExecute)(/*[in]*/VARIANT path,/*[in,optional]*/VARIANT param,/*[in,optional]*/VARIANT initdir,/*[in,optional]*/VARIANT mode, /*[out,retval]*/VARIANT* punkVal); +protected: + IMalloc* m_pMalloc; + IOverlappedWindow* m_pMainWindow; +}; + +// Shell.h : CShellExecObj ‚̐錾 + + +///////////////////////////////////////////////////////////////////////////// +// CShellExecObj +class ATL_NO_VTABLE CShellExecObj : + public CComObjectRootEx, +// public CComCoClass, + public IDispatchImpl +{ +public: + CShellExecObj() + { + m_hProcess = NULL; + } + void FinalRelease() + { + if(m_hProcess){ + CloseHandle(m_hProcess); + m_hProcess = NULL; + } + } +DECLARE_REGISTRY_RESOURCEID(IDR_SHELLEXECOBJ) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CShellExecObj) + COM_INTERFACE_ENTRY(IShellExecObj) + COM_INTERFACE_ENTRY(IDispatch) +END_COM_MAP() + +// IShellExecObj +public: + STDMETHOD(get_ExitCode)(/*[out, retval]*/ long *pVal); + STDMETHOD(Wait)(/*[in,optional]*/VARIANT tim,/*[out,retval]*/VARIANT* pVal); + HANDLE m_hProcess; +}; + +// shell.h : CParseName ‚̐錾 + + +///////////////////////////////////////////////////////////////////////////// +// CParseName +class ATL_NO_VTABLE CParseName : + public CComObjectRootEx, + public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CParseName() + { + } + +DECLARE_REGISTRY_RESOURCEID(IDR_PARSENAME) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CParseName) + COM_INTERFACE_ENTRY(ISeraphyScriptTool_ParseName) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ISeraphyScriptTool_ParseName +public: + STDMETHOD(get_Directory)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Drive)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_Drive)(/*[in]*/ BSTR newVal); + STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_Name)(/*[in]*/ BSTR newVal); + STDMETHOD(get_Extention)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_Extention)(/*[in]*/ BSTR newVal); + STDMETHOD(get_FileName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_FileName)(/*[in]*/ BSTR newVal); + STDMETHOD(get_PathName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_PathName)(/*[in]*/ BSTR newVal); + _bstr_t m_bstr_path; +}; + +#endif //__SHELL_H_ diff --git a/Shell.rgs b/Shell.rgs new file mode 100644 index 0000000..d008c90 --- /dev/null +++ b/Shell.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.Shell.1 = s 'SeraphyScriptTools.Shell Class' + { + CLSID = s '{A1F18502-8397-4586-AE93-8F6384056403}' + } + SeraphyScriptTools.Shell = s 'SeraphyScriptTools.Shell Class' + { + CLSID = s '{A1F18502-8397-4586-AE93-8F6384056403}' + CurVer = s 'SeraphyScriptTools.Shell.1' + } + NoRemove CLSID + { + ForceRemove {A1F18502-8397-4586-AE93-8F6384056403} = s 'SeraphyScriptTools.Shell Class' + { + ProgID = s 'SeraphyScriptTools.Shell.1' + VersionIndependentProgID = s 'SeraphyScriptTools.Shell' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/ShellExecObj.rgs b/ShellExecObj.rgs new file mode 100644 index 0000000..b12a1eb --- /dev/null +++ b/ShellExecObj.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.ShellExecObj.1 = s 'SeraphyScriptTools.ShellExecObj Class' + { + CLSID = s '{B7168409-78F6-4C7A-A7E6-15D978B65634}' + } + SeraphyScriptTools.ShellExecObj = s 'SeraphyScriptTools.ShellExecObj Class' + { + CLSID = s '{B7168409-78F6-4C7A-A7E6-15D978B65634}' + CurVer = s 'SeraphyScriptTools.ShellExecObj.1' + } + NoRemove CLSID + { + ForceRemove {B7168409-78F6-4C7A-A7E6-15D978B65634} = s 'SeraphyScriptTools.ShellExecObj Class' + { + ProgID = s 'SeraphyScriptTools.ShellExecObj.1' + VersionIndependentProgID = s 'SeraphyScriptTools.ShellExecObj' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/StdAfx.cpp b/StdAfx.cpp new file mode 100644 index 0000000..f34e8f0 --- /dev/null +++ b/StdAfx.cpp @@ -0,0 +1,12 @@ +// stdafx.cpp : •W€ƒCƒ“ƒNƒ‹[ƒhƒtƒ@ƒCƒ‹‚ðŠÜ‚Þƒ\[ƒX ƒtƒ@ƒCƒ‹ +// stdafx.pch ¶¬‚³‚ê‚éƒvƒŠƒRƒ“ƒpƒCƒ‹Ïƒwƒbƒ_[ +// stdafx.obj ¶¬‚³‚ê‚éƒvƒŠƒRƒ“ƒpƒCƒ‹Ïƒ^ƒCƒvî•ñ + +#include "stdafx.h" + +#ifdef _ATL_STATIC_REGISTRY +#include +#include +#endif + +// FIXME: #include diff --git a/StdAfx.h b/StdAfx.h new file mode 100644 index 0000000..8bf9ebe --- /dev/null +++ b/StdAfx.h @@ -0,0 +1,35 @@ +// stdafx.h : •W€‚̃VƒXƒeƒ€ ƒCƒ“ƒNƒ‹[ƒh ƒtƒ@ƒCƒ‹A +// ‚Ü‚½‚ÍŽQÆ‰ñ”‚ª‘½‚­A‚©‚‚ ‚Ü‚è•ÏX‚³‚ê‚È‚¢ +// ƒvƒƒWƒFƒNƒgê—p‚̃Cƒ“ƒNƒ‹[ƒh ƒtƒ@ƒCƒ‹‚ð‹Lq‚µ‚Ü‚·B + +#if !defined(AFX_STDAFX_H__8CB29832_BD58_4AC5_92EB_DB8B53DF0C73__INCLUDED_) +#define AFX_STDAFX_H__8CB29832_BD58_4AC5_92EB_DB8B53DF0C73__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#define STRICT +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0500 +#endif +#define _ATL_APARTMENT_THREADED + +#include +// CComModule ƒNƒ‰ƒX‚©‚ç”h¶‚µ‚½ƒNƒ‰ƒX‚ðŽg—p‚µ‚āAƒI[ƒo[ƒ‰ƒCƒh‚·‚éê‡ +// _Module ‚Ì–¼‘O‚͕ύX‚µ‚È‚¢‚Å‚­‚¾‚³‚¢B +extern CComModule _Module; +#include +#include +#include + +#include +#include + +#define WM_MOVENEXT_OVERLAPPED (WM_USER+100) +#define WM_KEYDOWN_EX (WM_USER+101) + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ ‚Í‘Os‚Ì’¼‘O‚ɒljÁ‚̐錾‚ð‘}“ü‚µ‚Ü‚·B + +#endif // !defined(AFX_STDAFX_H__8CB29832_BD58_4AC5_92EB_DB8B53DF0C73__INCLUDED) diff --git a/TestScript/bitmap.vbs b/TestScript/bitmap.vbs new file mode 100644 index 0000000..7f8b4fe --- /dev/null +++ b/TestScript/bitmap.vbs @@ -0,0 +1,61 @@ +option explicit + +dim base,shel,parse,bmp1 +base = wscript.scriptfullname +set shel = createobject("seraphyscripttools.shell") +set parse = shel.ParseName(base) +parse.filename = "blk1.bmp" +bmp1 = parse.pathname + +class mainwnd +private wnd +private bitmap1,bitmap2 +private sub class_initialize + set wnd = obj.mainframe + with wnd + .classobject = me + .open "Bitmap Test" + with .canvas + set bitmap1 = .LoadPicture(bmp1) + with .layer(0) + dim w,h,x,y,c + w = bitmap1.Width / 100 + h = bitmap1.Height / 100 + c = 10 + for x = 0 to c + for y = 0 to c + .picture bitmap1,x*w,y*h + next + next + end with + end with + .Draw + .DoModal + end with +end sub + +public sub OnMouseMove + dim x,y + with wnd + with .event + x = .posx + y = .posy + end with + with .canvas.layer(1) + .clear + .setmappingmode 0 + .line x,0,x,1000 + .line 0,y,1000,y + .setmappingmode 1 + .text 0,0,x & "/" & y + end with + .draw + end with +end sub + +end class + +dim obj +set obj = createobject("seraphyscripttools.instance") +dim app +set app = new mainwnd diff --git a/TestScript/blk1.bmp b/TestScript/blk1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..07942227ed4c6ea87101730fb3f618598922d4b9 GIT binary patch literal 6966 zcmeH|yA8uI3`CU$QX9wuDN}g>_t`1KWiN-Y0u{0-e#8hV&ae!NI^LtN@%CJA>9|&U z-f2C)>ynnEp6L92%_|pD+HoTRB!C2v01`j~vl4ji=0C5a#q@J0e?7t^HjPol8KD_T zuPo+{mqN)eO$Uvp+2||was5*tvENk@^Ojn;df#pQw8`a)<2a22N3ZG{s}N1a<+dR# zjR`kERo7UBXeutZ4Pl8U9KBf=-3A3sXumi}= 0) then + x = slst.ItemObject(idx1).Value("COUNT") + x = x + 1 + slst.ItemObject(idx1).Value("COUNT") = x + mes = mes & vbcrlf & "COUNT=" & x + end if + mes = mes & vbcrlf & "•¡”‘I‘ðƒŠƒXƒg" + for each enm in mlst + x = mlst.ItemObject(enm).Value("COUNT") + mes = mes & vbcrlf & "(no." & enm & ") " & x + x = x + 1 + mlst.ItemObject(enm).Value("COUNT") = x + next + obj.dialog.messagebox mes + end select +end sub diff --git a/TestScript/form3.vbs b/TestScript/form3.vbs new file mode 100644 index 0000000..ea2af08 --- /dev/null +++ b/TestScript/form3.vbs @@ -0,0 +1,63 @@ +option explicit + +dim obj +set obj = CreateObject("SeraphyScriptTools.Instance") + +dim dl,de,cmd + +wscript.ConnectObject obj.mainframe, "event_" +with obj.mainframe + .backcolor = "&HF0FF80" + .SetPlacement ,,,180 + .SetWindowStyle 0,1,0 + with .form + .ControlPad ,5 + .label "ƒhƒƒbƒvƒ_ƒEƒ“ƒGƒfƒBƒbƒg" + set de = .dropdownedit("DROPDOWNEDIT",,8) + .label "ƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg" + set dl = .dropdownlist(,8) + .controlbreak + .controlpad ,10 + set cmd = .button("SHOW",6) + .controlpad 90 + .button("EXIT",6).SetID(2) + end with + .open "ƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒgEƒGƒfƒCƒbƒgƒTƒ“ƒvƒ‹" + with de + .addstring "ABCDEFG" + .addstring "0123456" + .addstring "*/-+.?<>" + .addstring "4" + .addstring "3" + .addstring "2" + .addstring "1" + end with + with dl + .addstring "ABCDEFG" + .addstring "0123456" + .addstring "*/-+.?<>" + .addstring "4" + .addstring "3" + .addstring "2" + .addstring "1" + end with + dl.currentselecteditem = 0 + .domodal +end with +wscript.disconnectobject obj + +sub event_OnCommand + dim idx1,idx2,mes + select case obj.mainframe.event.parameter + case cmd.id + idx1 = de.currentselecteditem + idx2 = dl.currentselecteditem + mes = "ƒhƒƒbƒuƒ_ƒEƒ“ƒGƒeƒCƒbƒg‚Ì‘I‘ð = " & idx1 & vbcrlf + mes = mes & "“à—e = " & de.text & vbcrlf + mes = mes & vbcrlf & "ƒhƒƒbƒvƒ_ƒEƒ“ƒŠƒXƒg‚Ì‘I‘ð = " & idx2 & vbcrlf + if(idx2 >= 0) then + mes = mes & "“à—e = " & de.itemtext(idx2) + end if + obj.dialog.messagebox mes + end select +end sub diff --git a/TestScript/frame1.vbs b/TestScript/frame1.vbs new file mode 100644 index 0000000..a28a20f --- /dev/null +++ b/TestScript/frame1.vbs @@ -0,0 +1,48 @@ +Option Explicit + +Dim Obj +Set Obj = WScript.CreateObject("SeraphyScriptTools.Instance") +WScript.ConnectObject Obj.MainFrame,"Main_" + +With Obj.MainFrame + With .Form + .Label("HELLO!") + .Button("Create New Frame").SetID(50) + End With + .SetPlacement ,,300,150 + .Open "SeraphyScriptTools Test1" +End With + +Obj.MainFrame.DoModal + +WScript.DisconnectObject Obj.MainFrame + +'--------------------------------------------------------- +'@ƒCƒxƒ“ƒgƒnƒ“ƒhƒ‰ +sub Main_OnCommand() + dim ev + set ev = Obj.MainFrame.Event + if(ev.Parameter = 50) then + CreateNewFrame + end if +end sub + +'--------------------------------------------------------- +' •â•ƒTƒuƒ‹[ƒ`ƒ“ +Dim count +sub CreateNewFrame() + With Obj.MainFrame.CreateChild + .SetPlacement ,,150,150 + .BackColor = int(Rnd() * &hFFFFFF) + .Open "SUBFRAME " & count + With .Canvas.Layer(0) + .SetMappingMode 1 + .Color = int(Rnd() * &hFFFFFF) + .FillColor = int(Rnd() * &hFFFFFF) + .FontColor = int(Rnd() * &hFFFFFF) + .FillCircle 75,60,50 + .Text 20,20,count + End With + End With + count = count + 1 +end sub diff --git a/TestScript/key.vbs b/TestScript/key.vbs new file mode 100644 index 0000000..5c5995e --- /dev/null +++ b/TestScript/key.vbs @@ -0,0 +1,44 @@ +option explicit + +class mainwnd +private wnd +private px,py,code,excode +private sub class_initialize + px = 50 + py = 50 + set wnd = obj.mainframe + with wnd + .open("KEYDOWN EVENT") + .SetTimer 30 + .ClassObject = me + .DoModal + end with +end sub + +public sub OnKeydown + code = wnd.event.parameter + excode = wnd.event.extparameter + select case code + case 104 py = py - 10 + case 98 py = py + 10 + case 100 px = px - 10 + case 102 px = px + 10 + end select +end sub + +public sub OnTimer + with wnd.canvas.layer(0) + .clear + .setmappingmode 1 + .text 0,0,code & ":" & excode + .circle px,py,10 + end with + wnd.draw +end sub + +end class + +dim obj,app +set obj = createobject("seraphyscripttools.instance") + +set app = new mainwnd diff --git a/TestScript/map.vbs b/TestScript/map.vbs new file mode 100644 index 0000000..bfcfad4 --- /dev/null +++ b/TestScript/map.vbs @@ -0,0 +1,24 @@ +' ˜A‘z”z—ñ + +dim obj,obj2 +set obj = createobject("seraphyscripttools.objectmap") +set obj2 = obj.createmap + +obj.value("VAL1") = "SAMPLE1" +obj.value("VAL2") = "SAMPLE2" + +msgbox "ŠÂ‹«•Ï”“WŠJ‚È‚µ" & vbcrlf & obj.expandvariables("VAL1=(%VAL1%)"+vbcrlf+"VAL2=(%VAL2%)" + vbcrlf + "ŠÂ‹«•Ï”TMP(%TEMP%)",0) +msgbox "ŠÂ‹«•Ï”“WŠJ‚ ‚è" & vbcrlf & obj.expandvariables("VAL1=(%VAL1%)"+vbcrlf+"VAL2=(%VAL2%)" + vbcrlf + "ŠÂ‹«•Ï”TMP(%TEMP%)",1) + +dim prof,sec,dlg +set dlg = createobject("seraphyscripttools.commdialog") +set prof = createobject("seraphyscripttools.privateprofile") +prof.profilepath = dlg.savefiledialog( ,"‰Šú‰»ƒtƒ@ƒCƒ‹(*.ini)|*.ini|‚·‚ׂÄ(*.*)|*.*") +if(len(prof.profilepath) > 0) then + set sec = prof.opensection("TEST") + obj.saveprofile sec + obj2.loadprofile sec + for each x in obj2 + msgbox x & vbcrlf & "= " & obj2.value(x) + next +end if diff --git a/TestScript/pro1.vbs b/TestScript/pro1.vbs new file mode 100644 index 0000000..6c2b274 --- /dev/null +++ b/TestScript/pro1.vbs @@ -0,0 +1,34 @@ +'---------------------------------- +' ‰Šú‰»ƒtƒ@ƒCƒ‹ INI@‚̃AƒNƒZƒX +'---------------------------------- +' ŽÀs‚·‚é‚ÆINIƒtƒ@ƒCƒ‹‚Ì•Û‘¶æ‚ð–K‚Ë‚Ä‚«‚Ü‚· +' Žw’è‚·‚é‚ƈȑO‚ÌINIƒtƒ@ƒCƒ‹‚Ì“à—e‚ð‰ÁŽZ‚µ‚Ü‚·B +' ‰ÁŽZ‚³‚ê‚é‚ÆŒ‹‰Ê‚ðƒƒ‚’ ‚ÅŠJ‚«‚Ü‚· + +dim obj,shl +set obj = createobject("SeraphyScriptTools.privateprofile") +set shl = createobject("SeraphyScriptTools.Shell") +set dlg = createobject("SeraphyScriptTools.commdialog") + +obj.profilepath = "c:\test.ini" +do + obj.profilepath = dlg.savefiledialog(obj.profilepath) + if(len(obj.profilepath) <= 0) then exit do + dim sec + set sec = obj.opensection("TEST_SECTION1") + sec.value("VALUE1") = sec.value("VALUE1") + 1 + sec.value("VALUE2") = sec.value("VALUE2") + 10 + set sec = obj.opensection("TEST_SECTION2") + sec.value("VALUE1") = sec.value("VALUE1") + 100 + sec.value("VALUE2") = sec.value("VALUE2") & "ABC" + dim array,mes + array = sec.GetSectionNames() + for each x in array + mes = mes & "," & x + next + msgbox mes + shl.ShellExecute("notepad.exe",obj.profilepath).wait -1 +loop + + + diff --git a/TestScript/pro2.vbs b/TestScript/pro2.vbs new file mode 100644 index 0000000..5aa1b7e --- /dev/null +++ b/TestScript/pro2.vbs @@ -0,0 +1,31 @@ +'----------------------------------- +' ‰Šú‰»ƒtƒ@ƒCƒ‹ INI@‚̃AƒNƒZƒX2 +'----------------------------------- +' ŽÀs‚·‚é‚ÆINIƒtƒ@ƒCƒ‹‚ð–K‚Ë‚Ä‚«‚Ü‚· +' Žw’è‚·‚é‚ƈȑO‚ÌINIƒtƒ@ƒCƒ‹‚Ì“à—e‚ð˜A‘z”z—ñ‚ÉŠi”[‚µ‚Ü‚· +' ‚»‚ÌŒ‹‰Ê‚ðA‚ ‚½‚炵‚¢•Ê‚ÌINIƒtƒ@ƒCƒ‹‚É•Û‘¶‚µ‚Ü‚·B + +option explicit + +dim pro1,pro2,shl,dlg,map,section,outname +set pro1 = createobject("SeraphyScriptTools.privateprofile") +set pro2 = createobject("SeraphyScriptTools.privateprofile") +set shl = createobject("SeraphyScriptTools.Shell") +set dlg = createobject("SeraphyScriptTools.commdialog") +set map = createobject("SeraphyScriptTools.ObjectMap") + +pro1.profilepath = "c:\test.ini" +pro2.profilepath = "c:\test.txt" +do + pro1.profilepath = dlg.OpenFileDialog(pro1.profilepath) + if(len(pro1.profilepath) <= 0) then exit do + set section = pro1.OpenSection("TEST-DATA") + map.LoadProfile section + pro2.profilepath = dlg.SaveFileDialog(pro2.profilepath) + if(len(pro2.profilepath) <= 0) then exit do + set section = pro2.OpenSection("DUPLICATE") + map.SaveProfile section +loop + + + diff --git a/TestScript/sample1.vbs b/TestScript/sample1.vbs new file mode 100644 index 0000000..6e0fd72 --- /dev/null +++ b/TestScript/sample1.vbs @@ -0,0 +1,4 @@ +dim obj +set obj = CreateObject("SeraphyScriptTools.Instance") +obj.MainFrame.Open "SAMPLE1" +obj.MainFrame.DoModal diff --git a/TestScript/sample2.vbs b/TestScript/sample2.vbs new file mode 100644 index 0000000..46d0672 --- /dev/null +++ b/TestScript/sample2.vbs @@ -0,0 +1,7 @@ +dim obj +set obj = CreateObject("SeraphyScriptTools.Instance") + +obj.mainframe.open "SAMPLE2" +obj.mainframe.canvas.layer(0).text 0,0,"Hello World!" +obj.mainframe.draw +obj.mainframe.domodal diff --git a/TestScript/sample3.vbs b/TestScript/sample3.vbs new file mode 100644 index 0000000..4ad82d0 --- /dev/null +++ b/TestScript/sample3.vbs @@ -0,0 +1,11 @@ +dim obj +set obj = CreateObject("SeraphyScriptTools.Instance") +with obj.MainFrame + with .Form + .Label "ƒ‰ƒxƒ‹" + .Edit "“ü—Í—“" + .Button "ƒ{ƒ^ƒ“" + end with + .Open "SAMPLE3" + .DoModal +end with diff --git a/TestScript/sample3b.vbs b/TestScript/sample3b.vbs new file mode 100644 index 0000000..da7a1d8 --- /dev/null +++ b/TestScript/sample3b.vbs @@ -0,0 +1,38 @@ +dim obj +set obj = new MainFrame + +class mainframe + public instance + public edt,cmd + + public sub class_initialize + set instance = createobject("seraphyscripttools.instance") + with instance.mainframe + .classobject = me + with .form + .label "ƒ‰ƒxƒ‹" + set edt = .edit("ƒGƒfƒCƒbƒgƒ{ƒbƒNƒX") + set cmd = .button("•\Ž¦").SetClassEvent("CMD_SHOW") + end with + .open "ƒeƒXƒg" + .domodal + end with + end sub + + public sub CMD_SHOW + instance.dialog.messagebox edt.text + end sub + + public sub OnOK + if(instance.dialog.messagebox("•Â‚¶‚Ä‚à‚æ‚¢‚Å‚·‚©?",1) = -1) then + instance.mainframe.quit = false + end if + end sub + + public sub OnCancel + instance.dialog.messagebox "CANCEL" + end sub + +end class + + diff --git a/TestScript/sample4.vbs b/TestScript/sample4.vbs new file mode 100644 index 0000000..7fb29da --- /dev/null +++ b/TestScript/sample4.vbs @@ -0,0 +1,18 @@ +dim mainframe +set mainframe = new MainWindow + +class MainWindow + public Instance + public sub class_initialize + set Instance = CreateObject("SeraphyScriptTools.Instance") + with Instance.Mainframe + .ClassObject = me + .Open "sample4" + .DoModal + end with + end sub + + public sub OnClickOut + Instance.Dialog.MessageBox "CLICK" + end sub +end class diff --git a/TestScript/sample5.vbs b/TestScript/sample5.vbs new file mode 100644 index 0000000..f7027fa --- /dev/null +++ b/TestScript/sample5.vbs @@ -0,0 +1,29 @@ +dim mainframe +set mainframe = new MainWindow + +class MainWindow + public Instance + public edt + public sub class_initialize + set Instance = CreateObject("SeraphyScriptTools.Instance") + with Instance.Mainframe + .ClassObject = me + with .Form + .Label "ƒ‰ƒxƒ‹" + set edt = .Edit("“ü—Í—“",,8) + .Button("ƒRƒs[",8).SetClassEvent("OnCopy") + .Button("“\‚è•t‚¯",8).SetClassEvent("OnPaste") + end with + .Open "sample4" + .DoModal + end with + end sub + + public sub OnCopy + Instance.MainFrame.SetClipboardText edt.Text + end sub + + public sub OnPaste + edt.Text = Instance.MainFrame.GetClipboardText + end sub +end class diff --git a/TestScript/sfolder.vbs b/TestScript/sfolder.vbs new file mode 100644 index 0000000..5e1c8ac --- /dev/null +++ b/TestScript/sfolder.vbs @@ -0,0 +1,11 @@ +dim obj +set obj = CreateObject("SeraphyScriptTools.Shell") + +set map = CreateObject("SeraphyScriptTools.ObjectMap") +obj.getspecialfolderlocations(map) + +mes = "" +for each x in map + mes = mes & x & " = " & map.value(x) & vbcrlf +next +msgbox mes diff --git a/TestScript/simple1.vbs b/TestScript/simple1.vbs new file mode 100644 index 0000000..a6d57b2 --- /dev/null +++ b/TestScript/simple1.vbs @@ -0,0 +1,10 @@ +Option Explicit + +Dim Obj +Set Obj = WScript.CreateObject("SeraphyScriptTools.Instance") + +Obj.MainFrame.Open "SIMPLE-WINDOW" + +While Not Obj.MainFrame.Quit + Obj.WaitEvent +WEnd diff --git a/TestScript/simple2.vbs b/TestScript/simple2.vbs new file mode 100644 index 0000000..9aaa002 --- /dev/null +++ b/TestScript/simple2.vbs @@ -0,0 +1,19 @@ +Option Explicit + +Dim Obj +Set Obj = WScript.CreateObject("SeraphyScriptTools.Instance") + +with Obj.MainFrame.Open("SIMPLE-WINDOW").SetWindowStyle(0,0,0) + with .canvas.layer(0) + .SetMappingMode 1 + .text 100,100,"I—¹‚ÍESCƒL[" + end with + .backcolor = "&HFFFF00" + .open + .topmost = true + .zoomed = true + while(not .quit) + .waitevent + wend +end with + diff --git a/TestScript/tree1.vbs b/TestScript/tree1.vbs new file mode 100644 index 0000000..3402381 --- /dev/null +++ b/TestScript/tree1.vbs @@ -0,0 +1,62 @@ +'--------------------------------------------------- +' ƒcƒŠ[ƒrƒ…[‚̍쐬—á +'--------------------------------------------------- +option explicit + +' ƒNƒ‰ƒX‚𐶐¬‚·‚é +dim obj,fso +set fso = CreateObject("Scripting.FileSystemObject") +set obj = new mainframe + +'---------------------------------------------------- +' ƒƒCƒ“ƒtƒŒ[ƒ€‚̐¶¬‚ƃCƒxƒ“ƒg‚ð‚¤‚¯‚éƒNƒ‰ƒX‚Ì’è‹` +class mainframe + public instance + public tree + public sub class_initialize + set instance = createobject("seraphyscripttools.instance") + with instance.mainframe + .classobject = me + with .form + set tree = .TreeView(5,5) + end with + .defaultaction = false + .open "ƒcƒŠ[ƒrƒ…[‚̃eƒXƒg" + .SetMenu "/ƒRƒ}ƒ“ƒh(&C),ƒtƒHƒ‹ƒ_‚ðŽw’è‚·‚é(&S)@OnStart:I—¹(&X)@OnExit" + .domodal + end with + end sub + + public sub OnSize + dim w,h + with instance.mainframe + w = .clientWidth + h = .clientHeight + end with + tree.SetPlacement 0,0,w,h + end sub + + public sub OnExit + instance.mainframe.quit = true + end sub + + public sub OnStart + dim dirname,item,folder + dirname = instance.dialog.browseforfolder + if(len(dirname) > 0) then + item = null + set folder = fso.GetFolder(dirname) + EnumFolder folder,item + end if + end sub + + private sub EnumFolder(folder,item) + dim dirname,subfolder,childitem + dirname = folder.name + set childitem = tree.CreateChild ( dirname,item ) + childitem.object.Value("path") = folder.path + for each subfolder in folder.subfolders + EnumFolder subfolder,childitem + next + end sub +end class diff --git a/TestScript/tree_list.vbs b/TestScript/tree_list.vbs new file mode 100644 index 0000000..daae3b3 --- /dev/null +++ b/TestScript/tree_list.vbs @@ -0,0 +1,150 @@ +'------------------------------ +' TreeView & ListView Sample +'------------------------------ +Option Explicit +dim obj,tree,listview + +set obj = CreateObject("SeraphyScriptTools.Instance") +WScript.ConnectObject obj.mainframe,"event_" + +obj.mainframe.SetPlacement ,,500,500 +with obj.mainframe.form + .label "TreeView",10 + .Label("ListView",10).SetPlacement 250 + set tree = .treeview(15,10).SetID(40) + set listview = .listview("€–Ú–¼ :”ԍ† ",,10).SetID(41).SetPlacement(250) + .ControlPad ,5 + .button("ADD",4).SetID(50) + .button("Delete",5).SetID(54).SetPlacement 400 + .button("EXPAND",4).SetID(51) + .ControlBreak + .button("SHOW",4).SetID(52) + .button("Delete",4).SetID(53) + .Button("EXIT",5).SetID(1).SetPlacement 400 +end with + +' !!ƒAƒCƒeƒ€‚ð‰Šú‰»‚·‚é‚ɂ̓EƒBƒ“ƒhƒE‚ªì¬‚³‚ê‚Ä‚¢‚È‚¯‚ê‚΂Ȃç‚È‚¢!! +obj.mainframe.setwindowstyle(0,2,0).setplacement(,,,300).open("TreeView & ListView TEST").BackColor = "&HC0C0C0" +tree.addString "HELLO1" +tree.addString "HELLO2" +with tree.addString("HELLO3") + .Create "CHILD1" + .Create "CHILD2" + .Create "CHILD3" +end with + +obj.mainframe.domodal + +'-------------- +' ƒnƒ“ƒhƒ‰ +'-------------- +sub event_OnCommand + dim ev + set ev = obj.mainframe.event + if ( ev.parameter = 50) then ' <= ADD + call AddItem + elseif( ev.parameter = 51) then ' <= EXPAND + call Expand + elseif( ev.parameter = 52) then ' <= SHOW + call ShowItem + elseif( ev.parameter = 53) then ' <= DELETE(TREEVIEW) + call DeleteTreeItem + elseif( ev.parameter = 54) then ' <= DELETE(LISTVIEW) + call DeleteListItem + elseif( ev.parameter = 40) then ' <= TREEVIEW + call SelectItem + else + obj.dialog.messagebox "ƒRƒ}ƒ“ƒh”ԍ†=" & ev.parameter + end if +end sub + +'------------- +dim iteminsertcount +sub AddItem + ' ƒcƒŠ[ƒrƒ…[‚ɃAƒCƒeƒ€‚ð’ljÁ‚·‚é + dim arr + arr = obj.dialog.MultiOpenFileDialog + if(isArray(arr)) then + dim x,itm + if(isObject(tree.CurrentSelectedItem)) then + set itm = tree.CurrentSelectedItem + for each x in arr + iteminsertcount = iteminsertcount + 1 + with itm.Create(x) + .Object.Value("Number") = iteminsertcount + .Select + end with + next + else + ' ƒ‹[ƒg‚ɒljÁ‚·‚é + for each x in arr + iteminsertcount = iteminsertcount + 1 + tree.addString(x).Object.Value("Number") = iteminsertcount + next + end if + end if +end sub + +sub Expand + if(isObject(tree.CurrentSelectedItem)) then + tree.CurrentSelectedItem.Expand + end if +end sub + +sub ShowItem + if(isObject(tree.CurrentSelectedItem)) then + obj.dialog.messagebox "‚±‚̃AƒCƒeƒ€‚Í" & tree.CurrentSelectedItem.object.Value("Number") & "”Ô–Ú‚É‘}“ü‚³‚ê‚Ü‚µ‚½B" + end if +end sub + +sub DeleteTreeItem + if(isObject(tree.CurrentSelectedItem)) then + tree.CurrentSelectedItem.Erase + end if +end sub + +sub DeleteListItem + dim x + if(listview.selectedcount > 0) then + ' ‘I‘ðƒAƒCƒeƒ€‚Ì—ñ‹“‚̓XƒiƒbƒvƒVƒ‡ƒbƒg‚È‚Ì‚Å + ' —ñ‹“’†‚ɃAƒCƒeƒ€‚ÌŒ¸­‚ª‚ ‚é‚ƃXƒiƒbƒvƒVƒ‡ƒbƒg‚Í–³Œø‚É‚È‚é + listview.DeleteSelectedItem + else + obj.dialog.messagebox "‘I‘ð‚ª‚ ‚è‚Ü‚¹‚ñ",0,1 + end if +end sub + +sub SelectItem + if(isObject(tree.CurrentSelectedItem)) then + dim itm,idx,count + set itm = tree.CurrentSelectedItem + idx = listview.addstring(itm.text) + with listview + count = tree.CurrentSelectedItem.object.Value("Number") + .setcolumntext idx,1,count + with .itemobject(idx) + ' ˜A‘z”z—ñ‚ÉSORT??‚Æ‚¢‚¤ƒL[‚ðì¬‚·‚é‚ƃŠƒXƒgƒrƒ…[‚̓\[ƒg‚ðs‚¤ + .value("SORT0") = itm.text + .value("SORT1") = int(count) + end with + end with + end if +end sub + +sub event_OnContextMenu + dim ev,cmd + set ev = obj.mainframe.event + if(ev.parameter = 41) then + cmd = obj.mainframe.trackpopupmenu("ƒAƒCƒeƒ€‚ðíœ") + if(cmd = 1)then + call DeleteListItem + end if + elseif(ev.parameter = 40) then + cmd = obj.mainframe.trackpopupmenu("ƒAƒCƒeƒ€‚ðíœ,ƒJƒEƒ“ƒg‚ð•\Ž¦‚·‚é") + if(cmd = 1) then + call DeleteTreeItem + elseif(cmd = 2) then + call ShowItem + end if + end if +end sub diff --git a/TestScript/wait1.vbs b/TestScript/wait1.vbs new file mode 100644 index 0000000..b021ce6 --- /dev/null +++ b/TestScript/wait1.vbs @@ -0,0 +1,60 @@ +Option Explicit + +dim instance +dim md + +set instance = WScript.CreateObject("SeraphyScriptTools.Instance") +wscript.connectobject instance.mainframe,"event_" + +with instance.mainframe + with .form + .label "ƒEƒFƒCƒgƒJ[ƒ\ƒ‹" + .button "-WAIT-" + .button "-Wait OneShot -" + .label "ƒEƒBƒ“ƒhƒE‚̍쐬" + .button "Create Child" + .button "Create Frame" + end with + .SetPlacement ,,,200 + .SetWindowStyle 0,2,0 + .Open "ƒEƒFƒCƒgƒJ[ƒ\ƒ‹‚ÌŠÇ—" + .domodal +end with + +sub event_oncommandex (ev) + dim i,mes + if(ev.event.parameter = 11) then + if(md = 0) then + md = 1 + ev.form.control(11).text = "NORMAL" + instance.waitcursor = 1 + else + md = 0 + ev.form.control(11).text = "WAIT" + instance.waitcursor = 0 + end if + elseif(ev.event.parameter = 12) then + instance.waitcursor = 1 + mes = "" + for i = 0 to 5000 + mes = mes & ":" & i + next + instance.waitcursor = 0 + elseif(ev.event.parameter = 14) then + with instance.mainframe.createchild + .SetPlacement ,,100,100 + .backColor = "&H800080" + .canvas.layer(0).text 10,10,"CHILD FRAME" + .open("child") + .draw + end with + elseif(ev.event.parameter = 15) then + with instance.createframe + .SetPlacement ,,100,100 + .backColor = "&H008080" + .canvas.layer(0).text 10,10,"FRAME WINDOW" + .open("child") + .draw + end with + end if +end sub diff --git a/TreeItem.cpp b/TreeItem.cpp new file mode 100644 index 0000000..16e3ba4 --- /dev/null +++ b/TreeItem.cpp @@ -0,0 +1,97 @@ +// TreeItem.cpp : CTreeItem ‚̃Cƒ“ƒvƒŠƒƒ“ƒe[ƒVƒ‡ƒ“ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "TreeItem.h" +#include "objectmap.h" +#include +using namespace std; + + +///////////////////////////////////////////////////////////////////////////// +// CTreeItem + +STDMETHODIMP CTreeItem::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ITreeItem + }; + for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++) + { + if (IsEqualGUID(*arr[i],riid)) + return S_OK; + } + return S_FALSE; +} + +BOOL CTreeItem::DeleteTreeItemWithData(HWND hWnd,HTREEITEM hItem) +{ + HTREEITEM hRoot = hItem; + list lst; + lst.push_back(hItem); + while(!lst.empty()){ + hItem = lst.front(); + lst.pop_front(); + while(hItem){ + HTREEITEM hChild = TreeView_GetChild(hWnd,hItem); + if(hChild){ + // ŽqƒOƒ‹[ƒv‚ðŒŸ¸‚·‚é‚悤‚ɃXƒ^ƒbƒN‚·‚é + lst.push_back(hChild); + } + // ‚±‚̃AƒCƒeƒ€‚ÉŠÖ˜A‚¯‚ç‚ꂽƒIƒuƒWƒFƒNƒg‚ð‰ð•ú‚·‚é + TVITEM itm = {0}; + itm.mask = TVIF_PARAM; + itm.hItem = hItem; + if(TreeView_GetItem(hWnd,&itm) && itm.lParam){ + IUnknown* pUnk = (IUnknown*)itm.lParam; + pUnk->Release(); + itm.lParam = NULL; + TreeView_SetItem(hWnd,&itm); + } + // ‚‚¬‚̃AƒCƒeƒ€‚ð’T‚· + if(hRoot == hItem){ + // ŠJŽnˆÊ’u‚ÌŒZ’í‚Í’T‚µ‚Ä‚Í‚È‚ç‚È‚¢ + hItem = NULL; + } + else{ + hItem = TreeView_GetNextSibling(hWnd,hItem); + } + } + } + TreeView_DeleteItem(hWnd,hRoot); + return true; +} + +void CTreeItem::CreateTreeItem(HWND hWnd, HTREEITEM hParent, LPCSTR text, IUnknown **punkVal) +{ + // ƒAƒCƒeƒ€‚ª•Û—L‚·‚é˜A‘z”z—ñ‚𐶐¬‚·‚é + IUnknown* pUnk = NULL; + CComObject* pMap = NULL; + if(pMap->CreateInstance(&pMap) == S_OK){ + pMap->QueryInterface(IID_IUnknown,(void**)&pUnk); + } + // ‘}“ü‚·‚éƒAƒCƒeƒ€‚Ì’è‹` + TVINSERTSTRUCT is = { 0 }; + is.hParent = hParent; + is.hInsertAfter = TVI_LAST; + is.item.mask = TVIF_TEXT | TVIF_PARAM; + is.item.pszText = (LPSTR)text; + is.item.cchTextMax = lstrlen(text); + is.item.lParam = (LPARAM)pUnk; + + HTREEITEM hNewItem = TreeView_InsertItem(hWnd,&is); + if(hNewItem){ + // ƒAƒCƒeƒ€‚ւ̃IƒuƒWƒFƒNƒg‚ðì¬‚·‚é + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->SetParam(hWnd,hNewItem); + pItem->QueryInterface(IID_IUnknown,(void**)punkVal); + } + } +} + +STDMETHODIMP CTreeItem::IsValid(BOOL *pResult) +{ + *pResult = (m_hItem != NULL)?VB_TRUE:VB_FALSE; + return S_OK; +} diff --git a/TreeItem.h b/TreeItem.h new file mode 100644 index 0000000..4bf5423 --- /dev/null +++ b/TreeItem.h @@ -0,0 +1,284 @@ +// TreeItem.h : CTreeItem ‚̐錾 + +#ifndef __TREEITEM_H_ +#define __TREEITEM_H_ + +#include "resource.h" // ƒƒCƒ“ ƒVƒ“ƒ{ƒ‹ +#include "generic.h" + +///////////////////////////////////////////////////////////////////////////// +// CTreeItem +class ATL_NO_VTABLE CTreeItem : + public CComObjectRootEx, +// public CComCoClass, + public ISupportErrorInfo, + public IDispatchImpl +{ +public: + CTreeItem() + { + m_hWnd = NULL; + m_hItem = NULL; + } +static BOOL DeleteTreeItemWithData(HWND hWnd,HTREEITEM hItem); +//DECLARE_REGISTRY_RESOURCEID(IDR_TREEITEM) + +DECLARE_PROTECT_FINAL_CONSTRUCT() + +BEGIN_COM_MAP(CTreeItem) + COM_INTERFACE_ENTRY(ITreeItem) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// ISupportsErrorInfo + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ITreeItem +public: + STDMETHOD(IsValid)(/*[out,retval]*/BOOL* pResult); + static void CreateTreeItem(HWND hWnd,HTREEITEM hParent,LPCSTR text,IUnknown** punkVal); + STDMETHOD(Sort)() + { + HRESULT ret = InitialCheck(); + if(ret == S_OK){ + if(m_hItem){ + TreeView_SortChildren(m_hWnd,m_hItem,0); + } + else{ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + } + return ret; + } + STDMETHOD(Expand)() + { + HRESULT ret = InitialCheck(); + if(ret == S_OK){ + if(m_hItem){ + TreeView_Expand(m_hWnd,m_hItem,TVE_EXPAND); + } + else{ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + } + return ret; + } + STDMETHOD(Select)() + { + HRESULT ret = InitialCheck(); + if(ret == S_OK){ + if(m_hItem){ + TreeView_SelectItem(m_hWnd,m_hItem); + } + else{ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + } + return ret; + } + STDMETHOD(Erase)() + { + HRESULT ret = InitialCheck(); + if(ret == S_OK){ + if(m_hItem){ + if(DeleteTreeItemWithData(m_hWnd,m_hItem)){ + // íœ‚ɐ¬Œ÷‚µ‚½‚çA‚±‚̃nƒ“ƒhƒ‹‚𖳌ø‚É‚·‚é + m_hWnd = NULL; + m_hItem = NULL; + } + } + else{ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + } + return ret; + } + STDMETHOD(Create)(/*[in]*/VARIANT text,/*[out,retval]*/IUnknown** punkVal) + { + // ƒAƒCƒeƒ€‚̍쐬 + *punkVal = NULL; + HRESULT ret = InitialCheck(); + if(ret == S_OK){ + if(m_hItem){ + CHAR mes[MAX_PATH]; + CComVariant str; + if(str.ChangeType(VT_BSTR,&text) == S_OK){ + int cnt = WideCharToMultiByte(GetACP(),0,str.bstrVal,-1,mes,MAX_PATH,NULL,NULL); + CreateTreeItem(m_hWnd,m_hItem,mes,punkVal); + } + } + else{ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + } + return ret; + } + STDMETHOD(get_Object)(/*[in,optional]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal) + { + // ƒAƒCƒeƒ€‚ÉŠÖ˜A•t‚¯‚ç‚ꂽ˜A‘z”z—ñƒIƒuƒWƒFƒNƒg‚ðŽæ“¾‚·‚é + ::VariantInit(pVal); + HRESULT ret = InitialCheck(); + if(!m_hItem){ + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + TVITEM itm = {0}; + itm.mask = TVIF_PARAM; + itm.hItem = m_hItem; + if(TreeView_GetItem(m_hWnd,&itm)){ + IUnknown* pUnk = (IUnknown*)itm.lParam; + if(pUnk){ + pUnk->AddRef(); + pVal->vt = VT_UNKNOWN; + pVal->punkVal = pUnk; + } + } + } + return ret; + } + HRESULT InitialCheck() + { + // ƒEƒBƒ“ƒhƒE‚ª—LŒø‚©ŒŸ¸‚·‚é + if(m_hWnd && ::IsWindow(m_hWnd)){ + return S_OK; + } + ErrorInfo(IDS_ERR_TREEERROR); + return DISP_E_EXCEPTION; + } + STDMETHOD(get_Text)(/*[out, retval]*/ BSTR *pVal) + { + // ƒeƒLƒXƒg‚̎擾 + HRESULT ret = InitialCheck(); + if(!m_hItem){ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + CHAR text[MAX_PATH]; + TVITEM itm = {0}; + itm.mask = TVIF_TEXT; + itm.hItem = m_hItem; + itm.pszText = text; + itm.cchTextMax = MAX_PATH; + if(TreeView_GetItem(m_hWnd,&itm)){ + WCHAR wMes[MAX_PATH] = {0}; + MultiByteToWideChar(GetACP(),0,text,-1,wMes,MAX_PATH); + *pVal = SysAllocString(wMes); + } + } + return ret; + } + STDMETHOD(put_Text)(/*[in]*/ BSTR newVal) + { + // ƒeƒLƒXƒg‚̏‘‚«Š·‚¦ + HRESULT ret = InitialCheck(); + if(!m_hItem){ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + CHAR text[MAX_PATH] = {0}; + TVITEM itm = {0}; + itm.mask = TVIF_TEXT; + itm.hItem = m_hItem; + itm.pszText = text; + itm.cchTextMax = MAX_PATH; + WideCharToMultiByte(GetACP(),0,newVal,-1,text,MAX_PATH,NULL,NULL); + TreeView_SetItem(m_hWnd,&itm); + } + return ret; + } + STDMETHOD(get_PrevItem)(/*[out, retval]*/ IUnknown* *pVal) + { + // ‘O‚̃AƒCƒeƒ€ + *pVal = NULL; + HRESULT ret = InitialCheck(); + if(!m_hItem){ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + HTREEITEM hNewItem = TreeView_GetPrevSibling(m_hWnd,m_hItem); + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->SetParam(m_hWnd,hNewItem); + ret = pItem->QueryInterface(IID_IUnknown,(void**)pVal); + } + } + return ret; + } + STDMETHOD(get_NextItem)(/*[out, retval]*/ IUnknown* *pVal) + { + // ŽŸ‚̃AƒCƒeƒ€ + *pVal = NULL; + HRESULT ret = InitialCheck(); + if(!m_hItem){ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + HTREEITEM hNewItem = TreeView_GetNextSibling(m_hWnd,m_hItem); + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->SetParam(m_hWnd,hNewItem); + ret = pItem->QueryInterface(IID_IUnknown,(void**)pVal); + } + } + return ret; + } + STDMETHOD(get_ChildItem)(/*[out, retval]*/ IUnknown* *pVal) + { + // ŽqƒAƒCƒeƒ€ + *pVal = NULL; + HRESULT ret = InitialCheck(); + if(!m_hItem){ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + HTREEITEM hNewItem = TreeView_GetChild(m_hWnd,m_hItem); + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->SetParam(m_hWnd,hNewItem); + ret = pItem->QueryInterface(IID_IUnknown,(void**)pVal); + } + } + return S_OK; + } + STDMETHOD(get_Parent)(/*[out, retval]*/ IUnknown* *pVal) + { + // eƒAƒCƒeƒ€ + *pVal = NULL; + HRESULT ret = InitialCheck(); + if(!m_hItem){ + // •s³‚ȃAƒCƒeƒ€‚ðŽQÆ‚µ‚Ä‚¢‚é + ret = DISP_E_EXCEPTION; + } + if(ret == S_OK){ + HTREEITEM hNewItem = TreeView_GetParent(m_hWnd,m_hItem); + CComObject* pItem = NULL; + if(pItem->CreateInstance(&pItem) == S_OK){ + pItem->SetParam(m_hWnd,hNewItem); + ret = pItem->QueryInterface(IID_IUnknown,(void**)pVal); + } + } + return S_OK; + } + // + void SetParam(HWND hWnd,HTREEITEM hItem) + { + m_hWnd = hWnd; + m_hItem = hItem; + } +protected: + HWND m_hWnd; + HTREEITEM m_hItem; +}; + +#endif //__TREEITEM_H_ diff --git a/TreeItem.rgs b/TreeItem.rgs new file mode 100644 index 0000000..1f7a33b --- /dev/null +++ b/TreeItem.rgs @@ -0,0 +1,26 @@ +HKCR +{ + SeraphyScriptTools.TreeItem.1 = s 'SeraphyScriptTools.TreeItem Class' + { + CLSID = s '{300F33B2-A6C8-4712-A818-52964AAC531B}' + } + SeraphyScriptTools.TreeItem = s 'SeraphyScriptTools.TreeItem Class' + { + CLSID = s '{300F33B2-A6C8-4712-A818-52964AAC531B}' + CurVer = s 'SeraphyScriptTools.TreeItem.1' + } + NoRemove CLSID + { + ForceRemove {300F33B2-A6C8-4712-A818-52964AAC531B} = s 'SeraphyScriptTools.TreeItem Class' + { + ProgID = s 'SeraphyScriptTools.TreeItem.1' + VersionIndependentProgID = s 'SeraphyScriptTools.TreeItem' + ForceRemove 'Programmable' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + 'TypeLib' = s '{806A3FFF-0A01-4366-8B16-781BDF9B5604}' + } + } +} diff --git a/commdial.bmp b/commdial.bmp new file mode 100644 index 0000000000000000000000000000000000000000..122976492c7c0572b0bab819e7a01b7c59a56c22 GIT binary patch literal 246 zcmZvTu@S={3`M{1a>w~-Oz90WNBZodDsCCUl-fd_3mT?MOTHkb1z%6nmtOBLW_*Yz zwf(i=F^oL&U83V=&J)Zm(OM(j=;NbzuP8nrd2dAIz<@|O9Wa}$vyYd+g5Ww13Dg-R lBFL&IBCx8eaZ`(GWv_ctBa7~-@={Amew7$okj0rc#}8UDI@bUI literal 0 HcmV?d00001 diff --git a/generic.cpp b/generic.cpp new file mode 100644 index 0000000..116ee12 --- /dev/null +++ b/generic.cpp @@ -0,0 +1,58 @@ +#include "stdafx.h" +#include "SeraphyScriptTools.h" +#include "generic.h" + +void ErrorInfo(int nMessageID) +{ + ICreateErrorInfo *pCErrInfo; + if(CreateErrorInfo(&pCErrInfo) == S_OK){ + WCHAR wmes[MAX_PATH]; + CHAR mes[MAX_PATH]; + if(LoadString(_Module.m_hInst,nMessageID,mes,MAX_PATH)){ + MultiByteToWideChar(GetACP(),0,mes,-1,wmes,MAX_PATH); + pCErrInfo->SetDescription(wmes); + pCErrInfo->SetGUID(IID_IOverlappedWindow); + pCErrInfo->SetSource(L"SeraphyScriptTools"); + IErrorInfo* perrinfo; + if(pCErrInfo->QueryInterface(IID_IErrorInfo, (LPVOID FAR*) &perrinfo) == S_OK){ + SetErrorInfo(0, perrinfo); + perrinfo->Release(); + } + pCErrInfo->Release(); + } + } +} + +SAFEARRAY* GetArrayFromVariant(VARIANT& var,VARTYPE* pVt) +{ + // Œ^‚̏‰Šú‰» + if(pVt){ + *pVt = VT_ERROR; + } + VARIANT* pParseVariant = &var; + SAFEARRAY* pArray = NULL; + if(!(var.vt & VT_ARRAY) && (var.vt & (VT_BYREF|VT_VARIANT))){ + // ”z—ñ‚Å‚Í‚È‚­‚āAƒoƒŠƒAƒ“ƒg‚ÌŽQÆ“n‚µ‚Å‚ ‚ê‚΁A‚»‚̃|ƒCƒ“ƒ^‚ɉðÍ‚ð‚ ‚í‚¹‚é + pParseVariant = var.pvarVal; + } + if(!(pParseVariant->vt & VT_ARRAY)){ + // ”z—ñˆÈŠO‚È‚çI—¹ + return NULL; + } + // ”z—ñ‚Å‚ ‚é + if(pParseVariant->vt & VT_BYREF){ + // ”z—ñ‚ÌŽQÆ“n‚µ‚Å‚ ‚é + pArray = *pParseVariant->pparray; + } + else{ + // ”z—ñ‚»‚Ì‚à‚Ì‚Å‚ ‚é + pArray = pParseVariant->parray; + } + // Œ^î•ñ‚ÌŽæ‚èo‚µ (SafeArray‚É‚ÍŒ^î•ñ‚Í•K{‚Å‚Í‚È‚¢‚½‚ß) + if(pVt){ + *pVt = (pParseVariant->vt & VT_TYPEMASK); + } + return pArray; +} + + diff --git a/generic.h b/generic.h new file mode 100644 index 0000000..d03af5f --- /dev/null +++ b/generic.h @@ -0,0 +1,122 @@ +// GENERIC.h + +#if !defined(SERAPHYSCRIPTTOOLS_GENERIC_HEADER) +#define SERAPHYSCRIPTTOOLS_GENERIC_HEADER + +#define VB_TRUE -1 +#define VB_FALSE 0 + +/* +#if defined(_DEBUG) +#define ATLTRACE(mes) OutputDebugString(mes) +#else +#define ATLTRACE(mes) +#endif +*/ + +void ErrorInfo(int nMessageID); +SAFEARRAY* GetArrayFromVariant(VARIANT& var,VARTYPE* pVt); + +// ’l‚ðƒRƒs[‚·‚éƒoƒŠƒAƒ“ƒg—ñ‹“Œ^ +typedef CComEnum > CComEnumVARIANT; + +// “®“I‚ȃoƒŠƒAƒ“ƒg—ñ‹“Œ^ +template +class CComEnumDynaVARIANT :public IEnumVARIANT , public CComObjectRootEx +{ +public: +BEGIN_COM_MAP(CComEnumDynaVARIANT) + COM_INTERFACE_ENTRY(IEnumVARIANT) + COM_INTERFACE_ENTRY(IUnknown) +END_COM_MAP() + + CComEnumDynaVARIANT() + { + m_current = 0; + m_pObj = NULL; + } + STDMETHODIMP Next(unsigned long celt, VARIANT FAR* rgvar, unsigned long FAR* pceltFetched); + STDMETHODIMP Skip(unsigned long celt); + STDMETHODIMP Reset(); + STDMETHODIMP Clone(IEnumVARIANT FAR* FAR* ppenum); + void FinalRelease() + { + if(m_pObj){ + m_pObj->Release(); + m_pObj = NULL; + } + ATLTRACE("CComEnumDynaVARINAT::FinalRelease\r\n"); + } + void Init(T* pObj,unsigned long current) + { + m_current = current; + m_pObj = pObj; + if(m_pObj){ + m_pObj->AddRef(); + } + } +protected: + unsigned long m_current; + T* m_pObj; +}; + +template +STDMETHODIMP CComEnumDynaVARIANT::Next(unsigned long celt, VARIANT FAR* rgvar, unsigned long FAR* pceltFetched) +{ + // –ß‚·”z—ñ‚Ì’l‚ð‰Šú‰» + if(!m_pObj){ + return S_FALSE; + } + unsigned long i = 0; + for(i=0;iget_Count((long*)&mx); + while(cnt < celt && m_current < mx){ + CComVariant varIdx((long)m_current); + m_pObj->get_Value(varIdx,&rgvar[cnt]); + m_current++; + celt--; + cnt++; + } + // ŽÀÛ‚ɏ‘‚«–ß‚µ‚½’l‚ð‰Šú‰»‚·‚é + if(pceltFetched){ + *pceltFetched = cnt; + } + return (celt > cnt)?S_FALSE:S_OK; +} + +template +STDMETHODIMP CComEnumDynaVARIANT::Skip(unsigned long celt) +{ + if(m_pObj){ + unsigned long mx = 0; + m_pObj->get_Count((long*)&mx); + if(m_current + celt < mx){ + m_current += celt; + return S_OK; + } + } + return S_FALSE; +} + +template +STDMETHODIMP CComEnumDynaVARIANT::Reset() +{ + m_current = 0; + return S_OK; +} + +template +STDMETHODIMP CComEnumDynaVARIANT::Clone(IEnumVARIANT FAR* FAR* ppenum) +{ + CComObject< CComEnumDynaVARIANT >* pClone = NULL; + pClone->CreateInstance(&pClone); + pClone->Init(m_pObj,m_current); + pClone->QueryInterface(IID_IEnumVARIANT,(void**)ppenum); + return S_OK; +} + +#endif diff --git a/instance.bmp b/instance.bmp new file mode 100644 index 0000000000000000000000000000000000000000..122976492c7c0572b0bab819e7a01b7c59a56c22 GIT binary patch literal 246 zcmZvTu@S={3`M{1a>w~-Oz90WNBZodDsCCUl-fd_3mT?MOTHkb1z%6nmtOBLW_*Yz zwf(i=F^oL&U83V=&J)Zm(OM(j=;NbzuP8nrd2dAIz<@|O9Wa}$vyYd+g5Ww13Dg-R lBFL&IBCx8eaZ`(GWv_ctBa7~-@={Amew7$okj0rc#}8UDI@bUI literal 0 HcmV?d00001 diff --git a/popupwin.bmp b/popupwin.bmp new file mode 100644 index 0000000000000000000000000000000000000000..122976492c7c0572b0bab819e7a01b7c59a56c22 GIT binary patch literal 246 zcmZvTu@S={3`M{1a>w~-Oz90WNBZodDsCCUl-fd_3mT?MOTHkb1z%6nmtOBLW_*Yz zwf(i=F^oL&U83V=&J)Zm(OM(j=;NbzuP8nrd2dAIz<@|O9Wa}$vyYd+g5Ww13Dg-R lBFL&IBCx8eaZ`(GWv_ctBa7~-@={Amew7$okj0rc#}8UDI@bUI literal 0 HcmV?d00001 diff --git a/resource.h b/resource.h new file mode 100644 index 0000000..2a94509 --- /dev/null +++ b/resource.h @@ -0,0 +1,52 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by SeraphyScriptTools.rc +// +#define IDS_PROJNAME 100 +#define IDB_COMMDIALOG 101 +#define IDS_ERR_LAYERBOUND 101 +#define IDR_COMMDIALOG 102 +#define IDS_ERR_CREATEDWND 102 +#define IDB_OVERLAPPEDWINDOW 103 +#define IDS_ERR_NOCREATED 103 +#define IDR_OVERLAPPEDWINDOW 104 +#define IDS_ERR_ANTHERINTERFACE 104 +#define IDS_ERR_NEEDINTERFACES 105 +#define IDS_ERR_NODEFPRINTER 106 +#define IDS_ERR_NEED2DIM 107 +#define IDS_ERR_MAXCONTROL 108 +#define IDR_CONTROL 109 +#define IDS_ERR_DESTROYED 109 +#define IDS_ERR_NOCREATEMENU 110 +#define IDS_ERR_PRINTERSETTING 111 +#define IDR_CANVAS 112 +#define IDS_ERR_NOTSUPPORTCONTROL 112 +#define IDR_LAYER 113 +#define IDS_ERR_RANDEOUT 113 +#define IDR_FORM 114 +#define IDS_ERR_TREEERROR 114 +#define IDR_EVENT 115 +#define IDS_ERR_PROFILEPATH 115 +#define IDB_INSTANCE 116 +#define IDS_ERR_PICTURELOADFAIL 116 +#define IDR_INSTANCE 117 +#define IDR_ENUMSELECT 118 +#define IDR_TREEITEM 119 +#define IDR_OBJECTMAP 120 +#define IDR_SHELL 121 +#define IDR_SHELLEXECOBJ 122 +#define IDR_OBJECTVECTOR 123 +#define IDR_PROFILESECTION 124 +#define IDR_PARSENAME 125 +#define IDR_PRIVATEPROFILE 126 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 202 +#define _APS_NEXT_COMMAND_VALUE 32768 +#define _APS_NEXT_CONTROL_VALUE 201 +#define _APS_NEXT_SYMED_VALUE 127 +#endif +#endif -- 2.11.0