| 
             
              ソスソスVBソスソスソスSソスメ掲ソスソスソスソス(VB2-VB6ソスソス.NETソスソスソスp)
             
           | 
        
ソスEC/C++
        ソスEDelphi
        ソスEVisual BasicソスソスソスSソスソス
        ソス@(VB2-VB6ソスソス.NETソスソスソスp)
        ソスEVisual Basic(VB2-VB6)
        ソスEVisual Basic .NET
        ソスEVisual C++
        ソスソスソスソスノゑソスソスソスBソスワるおソスナゑソスソスB
        ソスソスソスツゑソスAソスソスソスソスソスbソスノなゑソスソスソスマなゑソスソスナゑソスソスB
        
        ソスソスソスソスソスAソスソスソスソスネのでゑソスソスソスソスAOpenFileDialogソスナ、ソスtソスHソスソスソス_ソスソスIソスソスツ能ソスノゑソスソスソスソスソスソスフでゑソスソスソスソスA
        ソスソスソスフようソスネゑソスソスニは、ソスツ能ソスネのでゑソスソス蛯、ソスソスソスH
        
        ソスJソスソスソスツ具ソスソスヘ、VB.NETソスQソスOソスOソスTソスナゑソスソスB
        
        ソスソスソスラゑソスソスソスソスソスソスソスソスニ、ソスソスソスソスソスソスソスロゑソスソスニ思ソスソスソスソスソスフでゑソスソスソスソスA
        ソスソスソスソスソスソスソスソスソスソスソスAソスソスソスソスソスソスソスZソスソスソスソスソスソスフゑソスソスニ思ソスソスソスAソスソスソスkソスソスソスソスソストゑソス轤「ソスワゑソスソスソスソスB
        
        ソスヌなゑソスソスソスソスソスソスソスソスmソスフ包ソスソスソスソスソスソスワゑソスソスソスソスソスAソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスホ幸ソスソスソスナゑソスソスB
        
        ソスソスしソスソスソスソスソス閧「ソスソスソスワゑソスソスB
ソスtソスbソスNソスソスソスト、CDN_FILEOKソスナのハソスソスソスhソスソスソスソスソスOソスソスJソスXソス^ソス}ソスCソスYソスソスソスソスニゑソス
        ソスfソスBソスソスソスNソスgソスソスソスソスIソスソスソスソス驍スソス゚のボソス^ソスソスソスEソス@ソス¥ソスソスヌ会ソスソスソスソストみては。
        
        ソスワゑソスソスAソスtソス@ソスCソスソスソスフ選ソスソスニフソスHソスソスソス_ソスフ選ソスソスソスソスソスソスソスソスソスソストゑソスソスソスフは、
        ソスmソスソスソスノ面倒ソスナゑソスソスソスソスソスヒ。
K.J.KソスソスソスソスB
        ソスソスソスソスソスソスソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
        
        ソスソスソスしソストみようソスニ思ソスソスソスト、ソスソスソスラてみゑソスソスフでゑソスソスソスソスAソスヌゑソスソスかソスソスワゑソスソスソスナゑソスソスソスソスB
        ソスソスソスフ箇擾ソスソスナ、ソスGソスソスソス[ソスソスソス¥ソスソスソスソスソスソスト趣ソスソスsソスソスソス驍アソスニゑソスソスナゑソスソスワゑソスソスソスB
        
        ソスu'Integer'ソスヘ、ソスfソスソスソスQソス[ソスgソス^ソスナなゑソスソスソスソス゚、'AddressOf'ソスソスソスソス'Integer'ソスノ変奇ソスソスナゑソスソスワゑソスソスソスv
        
        adressOfソスナ関撰ソスソスフポソスCソスソスソス^ソスソスnソスソスソスホ出ソスソスソスソスニ思ソスソスソスソスソスフでゑソスソスソスソスAソスネゑソスソスoソスソスソスネゑソスソスソスナゑソスソス蛯、ソスソスソスH
        ソスソスソス[ソスソスBソスBソスB
        
        ソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスニ擾ソスソスソスソスソスワゑソスソスB
        
        PrivateSubCommand1_Click(ByValeventSenderAsSystem.Object,ByValeventArgsAsSystem.EventArgs)HandlesCommand1.Click
        DimaAsObject
        DimrcAsObject
        DimDialoghWndAsObject
        DimlpofnAsOPENFILENAME
        
        Withlpofn
        .flags=OFN_PATHMUSTEXISTOrOFN_HIDEREADONLYOrOFN_EXPLOREROrOFN_ENABLEHOOK
        .lStructSize=Len(lpofn)
        
        .lpstrFileTitle=NewString(Chr(0),256)
        .nMaxFileTitle=256
        .lpstrFile=NewString(Chr(0),256)
        .nMaxFile=256
        .lpstrTitle="ソスtソス@ソスCソスソスソスソスJソスソス"
        .lpfnHook=AddressOfhookproc'ソスソス
        
        .lpstrFilter="HTMLFile(*.html)"&Chr(0)&"*.html"&Chr(0)&"TextFile(*.txt)"&Chr(0)&"*.txt"&Chr(0)&"AllFile(*.*)"&Chr(0)&"*.*"
        .lpstrInitialDir=My.Application.Info.DirectoryPath
        .nFilterIndex=2
        rc=GetOpenFileName(lpofn)
        Ifrc>0Then
        a=InStr(.lpstrFile,Chr(0))
        MsgBox(Mid(.lpstrFile,1,a-1))
        EndIf
        EndWith
        EndSub
Integerソス^ソスノゑソスソストゑソスソスソス骭セソスソスマ更ソスソスソスト、AddressOfソスナ渡ソスソスソスソスソス¥ソスbソスhソスソス
        ソスソスソスソスソスdソスlソスノゑソスソスせソスソスソスfソスソスソスQソス[ソスgソス^ソスノゑソスソストみゑソスニゑソスソスB
ソスソスソスEソスフ会ソスソスハ弁士ソスソスソスソスフ擾ソスソスソスソスソスソスソスノ、ソスFソスXソスソスソスラてみゑソスソスフでゑソスソスソスソスA
        ソスヌゑソスソスかソスソスワゑソスソスソスB
        
        ソスソスソスLソスフソスソスフ箇擾ソスソスナ、ソスGソスソスソス[ソスソスソス¥ソスソスソスソスソスソスワゑソスソスB
        ソスu'AddressOf'ソスIソスyソスソスソスソスソスhソスヘソスソス¥ソスbソスhソスフ厄ソスソスOソスナなゑソスソスソスホなゑソスワゑソスソスソスBソスソスソスソスソスソスソスヘ不ソスvソスナゑソスソスBソスv
        
        ソスヌゑソスソスソスソスAソスソスソスソスソスフでゑソスソス蛯、ソスソスソスH
        ソスヌなゑソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスソスB
        
        
        ----
        PublicClassForm1
        
        PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
        DimlpofnAsOPENFILENAME
        DimhookFunctionAsDelegateFuncHook=AddressOfModule1.OFNHookProc
        
        Withlpofn
        
        .flags=OFN_PATHMUSTEXISTOrOFN_HIDEREADONLY
        .lStructSize=System.Runtime.InteropServices.Marshal.SizeOf(lpofn)
        .hwndOwner=Me.Handle.ToInt32
        .lpstrFileTitle=NewString(Chr(0),256)
        .nMaxFileTitle=256
        .lpstrFile=NewString(Chr(0),256)
        .nMaxFile=256
        .lpstrTitle="ソスtソス@ソスCソスソスソスワゑソスソスヘ、ソスtソスHソスソスソス_ソスフ選ソスソス"
        .lpstrFilter="HTMLFile(*.html)"&Chr(0)&"*.html"&Chr(0)&"TextFile(*.txt)"&Chr(0)&"*.txt"&Chr(0)&"AllFile(*.*)"&Chr(0)&"*.*"
        .lpstrInitialDir=My.Application.Info.DirectoryPath
        .nFilterIndex=2
        .lpfnHook=AddressOfhookFunction'ソスソスソスソスソスソスソスナエソスソスソス[ソスソスソスoソスソスB
        
        DimrcAsObject
        rc=GetOpenFileName(lpofn)
        Ifrc>0Then
        DimaAsObject
        a=InStr(.lpstrFile,Chr(0))
        MsgBox(Mid(.lpstrFile,1,a-1))
        EndIf
        EndWith
        
        EndSub
        EndClass
        ----
        
        ----
        ModuleModule1
        
        '*******************************************
        'ソスtソス@ソスCソスソスソスIソスソス_ソスCソスAソスソスソスOソス{ソスbソスNソスXソスソス¥ソスソスソスソスソスソス
        '*******************************************
        DelegateFunctionDelegateFuncHook(ByValhdlgAsInteger,ByValmsgAsInteger,ByValwParamAsInteger,ByVallParamAsInteger)AsInteger
        PublicDeclareFunctionGetOpenFileNameLib"comdlg32.dll"Alias"GetOpenFileNameA"(ByReflpofnAsOPENFILENAME)AsInteger
        PublicStructureOPENFILENAME
        DimlStructSizeAsInteger'ソス¥ソスソスソスフのサソスCソスY
        DimhwndOwnerAsInteger'ソス_ソスCソスAソスソスソスOソス{ソスbソスNソスXソスフ親ソスEソスBソスソスソスhソスEソスnソスソスソスhソスソス
        DimhInstanceAsInteger'ソスeソスソスソスvソスソスソス[ソスgソスソスソス¥ソス[ソスXソスソスソスソスツソスソスWソスソスソス[ソスソスソスフイソスソスソスXソス^ソスソスソスXソスnソスソスソスhソスソス(ソスsソスpソスフとゑソス0)
        'flagsソスソスOFN_ENABLETEMPLATEソスソスン定しソストゑソスソスソスニゑソスソスフみ有ソスソス)
        DimlpstrFilterAsString'ソスtソスBソスソスソス^(VisualBasicソスフフソス@ソスCソスソスソスpソス^ソス[ソスソスソスフゑソスソスソス)
        DimlpstrCustomFilterAsString'ソスJソスXソス^ソスソスソスtソスBソスソスソス^
        DimnMaxCustomFilterAsInteger'ソスソスソスAソスoソスCソスgソスソス
        DimnFilterIndexAsInteger'ソス_ソスCソスAソスソスソスOソスノ優ソスソスIソスノ表ソスソスソスソスソスソスtソスBソスソスソス^ソスフイソスソスソスfソスbソスNソスX
        'lpstrFilterソスナ指ソス閧オソスソスソスナ擾ソスソスフフソスBソスソスソス^ソスフイソスソスソスfソスbソスNソスXソスソス1
        'ソスソスソスフソスソスソスソスoソスソス0ソスノ設定すソスソスニ、ソスJソスXソス^ソスソスソスtソスBソスソスソス^ソスソスソスgソスpソスソスソスソスソス
        'lpstrCustomFilterソスソスソスン定さソスソストゑソスソスネゑソスソスニゑソス
        'lpstrFilterソスフ最擾ソスソスフフソスBソスソスソス^ソスソスgソスpソスソスソスソス
        
        DimlpstrFileAsString'(ソス゚ゑソスl)ソスtソスソスソスpソスXソスソスソスソスけ趣ソスソスoソスbソスtソス@
        DimnMaxFileAsInteger'ソスソスソスAソスoソスCソスgソスソス
        DimlpstrFileTitleAsString'(ソス゚ゑソスl)ソスtソス@ソスCソスソスソスソスソスソスけ趣ソスソスoソスbソスtソス@
        DimnMaxFileTitleAsInteger'ソスソスソスAソスoソスCソスgソスソス
        DimlpstrInitialDirAsString'ソスソスソスソスソスフデソスBソスソスソスNソスgソスソスソスソス
        DimlpstrTitleAsString'ソス_ソスCソスAソスソスソスOソスフキソスソスソスvソスVソスソスソスソス
        DimflagsAsInteger'ソスソスソスソスソスwソスソス
        DimnFileOffsetAsShort'ソスtソスソスソスpソスXソスソスソスフフソス@ソスCソスソスソスソスソスワでのオソスtソスZソスbソスg
        DimnFileExtensionAsShort'ソスソスソスAソスgソスソスソスqソスワでのオソスtソスZソスbソスg
        DimlpstrdefextAsString'ソスfソスtソスHソスソスソスgソスフ拡ソスソスソスq
        DimlCustDataAsInteger'ソスtソスbソスNソスvソスソスソスVソス[ソスWソスソスソスノ渡ソスソスソスfソス[ソス^
        DimlpfnHookAsInteger'ソスtソスbソスNソスvソスソスソスVソス[ソスWソスソスソスヨのポソスCソスソスソス^
        DimlpTemplateNameAsString'ソスeソスソスソスvソスソスソス[ソスgソスソスソス¥ソス[ソスXソスソス
        EndStructure
        
        'uFlagsソスフ定数
        PublicConstOFN_ALLOWMULTISELECTAsShort=&H200S'ソスソスソスソスソスtソス@ソスCソスソスソスソスIソスソスツ能ソスノゑソスソスソス
        PublicConstOFN_CREATEPROMPTAsShort=&H2000S'ソスwソスソスフフソス@ソスCソスソスソスソスソスソスソスネゑソスソスニゑソスソスAソスtソス@ソスCソスソスソスソス成ソスソスソス驍ゥソスヌゑソスソスソスソスソス竄「ソスソスソスせソスソス_ソスCソスAソスソスソスOソスソス¥ソスソスソスソスソスソス
        PublicConstOFN_HIDEREADONLYAsShort=&H4S'ソス繽托ソスソスソスヨ止ソス`ソスFソスbソスNソス{ソスbソスNソスXソスソス¥ソスソスソスソスソスネゑソス
        PublicConstOFN_NODEREFERENCELINKSAsInteger=&H100000'ソスVソスソスソス[ソスgソスJソスbソスgソスソスソスソスソスNソスi.lnkソスjソスtソス@ソスCソスソスソスソスソスソスソスソスフまま返ゑソスソスiソスソスソスフフソスソスソスbソスOソスソスwソス閧オソスネゑソスソスニゑソスソスAソスソスソスソスソスNソスソスフフソスソスソスpソスXソスソスソス゚ゑソスj
        PublicConstOFN_NOREADONLYRETURNAsShort=&H8000S'ソスヌみ趣ソスソスソスpソスソスソスソスソスフフソス@ソスCソスソスソスニ擾ソスソスソスソスン禁止ソスfソスBソスソスソスNソスgソスソスソスソスIソスソスソスソスソスソスニゑソスソスAソスソスソスbソスZソス[ソスWソス{ソスbソスNソスXソスソス¥ソスソスソスソスソスソス
        PublicConstOFN_READONLYAsShort=&H1S'ソス繽托ソスソスソスヨ止ソス`ソスFソスbソスNソス{ソスbソスNソスXソスソス`ソスFソスbソスNソスソスソスソス
        PublicConstOFN_OVERWRITEPROMPTAsShort=&H2S'ソスソスソスソスソスtソス@ソスCソスソスソスソスソスソスwソス閧オソスソスソスニゑソスソスAソスソスソスbソスZソス[ソスWソス{ソスbソスNソスXソスソス¥ソスソスソスソスソスソス
        PublicConstOFN_EXTENSIONDIFFERENTAsShort=&H400S'lpstrDefExtソスニ異なゑソスgソスソスソスqソスフ難ソスソスヘゑソスソスソスツゑソスソスソスiソスソスソスフフソスソスソスbソスOソスソスlpstrDefExtソスソスvbNullStringソスフとゑソスソスソスソスソスソスj
        PublicConstOFN_FILEMUSTEXISTAsShort=&H1000S'ソスwソスソスフフソス@ソスCソスソスソスソスソスソスソスソスソスンゑソスソスネゑソスソスニゑソスソスAソスソスソスbソスZソス[ソスWソス{ソスbソスNソスXソスソス¥ソスソスソスソスソスソス
        PublicConstOFN_NOTESTFILECREATEAsInteger=&H10000'ソス_ソスCソスAソスソスソスOソスIソスソスソスOソスノ、ソスソスソスソスソスソスソスン禁止ソスソスソスソスソスネどのチソスFソスbソスNソスフゑソスソス゚のテソスXソスgソスpソスtソス@ソスCソスソスソスソス成ソスソスソスネゑソス
        PublicConstOFN_NOVALIDATEAsShort=&H100S'ソスtソス@ソスCソスソスソスソスソスフ有ソスソスソスソスソスソス`ソスFソスbソスNソスソスソスネゑソスソスiソスソスソスソスソスソスソスAソスtソス@ソスCソスソスソスソスソスソスソスsソスソスソスネ場合ソスAソスソスソスbソスZソス[ソスWソスヘ表ソスソスソスソスソスソスソスj
        PublicConstOFN_PATHMUSTEXISTAsShort=&H800S'ソスLソスソスソスネパソスXソスソスソスソスソスソスソスソスソスtソスソスソスソスiソスsソスソスソスネフソス@ソスCソスソスソスソスソスソスソスソスソスヘゑソスソス黷スソスニゑソスソスAソスソスソスbソスZソス[ソスWソスソス¥ソスソスソスソスソスソスBソスソスソスソスソスソスソスAソスソスソス黷ェソスfソスtソスHソスソスソスgソスフ設抵ソスナゑソスソスソスフで、ソスソスソスフフソスソスソスbソスOソスソスwソス閧キソスソスKソスvソスヘなゑソスソスj
        PublicConstOFN_SHOWHELPAsShort=&H10S'ソスwソスソスソスvソス{ソス^ソスソスソスソス¥ソスソスソスソスソスソス
        PublicConstOFN_ENABLEHOOKAsShort=&H20S'lpfnHookソスソスソスソスソスoソスソスLソスソスソスノゑソスソスソス
        PublicConstOFN_ENABLESIZINGAsShort=0'
        PublicConstOFN_ENABLETEMPLATEAsShort=&H40S'ソスeソスソスソスvソスソスソス[ソスgソスソスgソスソス
        PublicConstOFN_ENABLETEMPLATEHANDLEAsShort=&H80S'hInstanceソスヘテソスソスソスvソスソスソス[ソスgソスヨのポソスCソスソスソス^ソスソスwソスソス
        PublicConstOFN_EXPLORERAsInteger=&H80000'ソスGソスNソスXソスvソスソスソス[ソスソスソス^ソス_ソスCソスAソスソスソスOソスニゑソスソスト表ソスソス
        PublicConstOFN_LONGNAMESAsInteger=&H200000'ソスソスソスXソス^ソスCソスソスソスフダソスCソスAソスソスソスOソスフとゑソスソスAソスソスソスソスソスOソスtソス@ソスCソスソスソスソスソスソスgソスpソスツ能ソスノゑソスソスソスiソスGソスNソスXソスvソスソスソス[ソスソスソス^ソスフとゑソスソスヘ擾ソスノソスソスソスソスOソスtソス@ソスCソスソスソスソスソスソスソスgソスソスソスソスj
        PublicConstOFN_NOCHANGEDIRAsShort=&H8S'ソス_ソスCソスAソスソスソスOソスIソスソスソスソスAソスソスソスフデソスBソスソスソスNソスgソスソスソスノ戻ゑソス
        PublicConstOFN_NOLONGNAMESAsInteger=&H40000'ソスソスソスXソス^ソスCソスソスソスフダソスCソスAソスソスソスOソスフとゑソスソスAソスVソスソスソス[ソスgソスtソス@ソスCソスソスソスソスソスソスgソスpソスツ能ソスノゑソスソスソスiソスGソスNソスXソスvソスソスソス[ソスソスソス^ソスフとゑソスソスヘ擾ソスノソスソスソスソスOソスtソス@ソスCソスソスソスソスソスソスソスgソスソスソスソスj
        PublicConstOFN_NONETWORKBUTTONAsInteger=&H20000'ソスlソスbソスgソスソスソス[ソスNソス{ソス^ソスソスソスソスソス¥ソスソスソスEソスソスソスソスソスノゑソスソスソス
        PublicConstOFN_SHAREAWAREAsShort=&H4000S'ソスtソス@ソスCソスソスソスソスJソスソスソスソスソスニゑソスソスノネソスbソスgソスソスソス[ソスNソスソスソスLソス癆スソスフゑソスソス゚エソスソスソス[ソスソスソスソスソスソスソスソスソストゑソスGソスソスソス[ソス無趣ソスソスソスソスソス
        
        'ソスEソスCソスソスソスhソスEソスソスソスbソスZソス[ソスW
        PublicConstWM_INITDIALOGAsShort=&H110S'ソス_ソスCソスAソスソスソスOソスソスソスソスソスソスソスソスソスbソスZソス[ソスW
        PublicConstWM_COMMANDAsShort=&H111S'ソスRソスソスソスgソスソスソス[ソスソスソスソスソスbソスZソス[ソスW
        PublicConstWM_NOTIFYAsShort=&H4ES'ソスWソスソスソスeソスメソスbソスZソス[ソスW
        
        '------------------------------------
        'ソスRソスソスソスソスソス_ソスCソスAソスソスソスOソスtソスbソスNソスvソスソスソスVソス[ソスWソスソス
        '------------------------------------
        PublicFunctionOFNHookProc(ByValhdlgAsInteger,ByValmsgAsInteger,ByValwParamAsInteger,ByVallParamAsInteger)AsInteger
        SelectCasemsg
        CaseWM_INITDIALOG
        'ソス_ソスCソスAソスソスソスOソスソスソスソスソスソス
        'OFNHookProc=Form1.fncOFNProc_INITDIALOG(hdlg)
        CaseWM_NOTIFY
        'ソス_ソスCソスAソスソスソスOソスeソスメソスbソスZソス[ソスW
        'OFNHookProc=Form1.fncOFNProc_NOTIFY(hdlg,wParam,lParam)
        CaseWM_COMMAND
        'ソス_ソスCソスAソスソスソスOソスRソスソスソスgソスソスソス[ソスソスソスソスソスbソスZソス[ソスW
        'ソス{ソスTソスソスソスvソスソスソスナは使ソスpソスソスソスワゑソスソスが、ソスソスソスソスソスソスソスソスソスワゑソスソスB
        OFNHookProc=True
        CaseElse
        OFNHookProc=False
        EndSelect
        EndFunction
        EndModule
        ----
>.lpfnHook=AddressOfhookFunction'ソスソスソスソスソスソスソスナエソスソスソス[ソスソスソスoソスソスB
        DimlpfnHookAsInteger->DimlpfnHookAsDelegateFuncHook
        .lpfnHook=AddressOfhookFunction->.lpfnHook=hookFunction
        ソスワゑソスソスFソスXソスニエソスソスソス[ソスソスソスLソス閧サソスソスソスナゑソスソスソスソスAソスニりあソスソスソスソスソスB