' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
の位置に次のようなコードを入力します。
コード: 全て選択
Type IDispatchVtbl
'IUnknown
QueryInterface As VoidPtr
AddRef As VoidPtr
Release As VoidPtr
'IDispatch
GetTypeInfoCount As VoidPtr
GetTypeInfo As VoidPtr
GetIDsOfNames As VoidPtr
Invoke As VoidPtr
End Type
Type IDispatch_Internal
lpVtbl As *IDispatchVtbl
m_refCnt As DWord
pSrcUnk As *IUnknown
dwDocCookie As DWord
End Type
Type IDocHostUIHandlerVtbl
'IUnknown
QueryInterface As VoidPtr
AddRef As VoidPtr
Release As VoidPtr
'IDocHostUIHandler
ShowContextMenu As VoidPtr
ShowUI As VoidPtr
GetHostInfo As VoidPtr
HideUI As VoidPtr
UpdateUI As VoidPtr
EnableModeless As VoidPtr
OnDocWindowActivate As VoidPtr
OnFrameWindowActivate As VoidPtr
ResizeBorder As VoidPtr
TranslateAccelerator As VoidPtr
GetOptionKeyPath As VoidPtr
GetDropTarget As VoidPtr
GetExternal As VoidPtr
TranslateUrl As VoidPtr
FilterDataObject As VoidPtr
End Type
Type IDocHostUIHandler_Internal
lpVtbl As *IDocHostUIHandlerVtbl
ole_client_site As *IOleClientSite_Internal
html_window As HWND
End Type
Type IOleClientSiteVtbl
'IUnknown
QueryInterface As VoidPtr
AddRef As VoidPtr
Release As VoidPtr
'IOleClientSite
SaveObject As VoidPtr
GetMoniker As VoidPtr
GetContainer As VoidPtr
ShowObject As VoidPtr
OnShowWindow As VoidPtr
RequestNewObjectLayout As VoidPtr
End Type
Type IOleClientSite_Internal
lpVtbl As *IOleClientSiteVtbl
in_place As *IOleInPlaceSite_Internal
doc_host_ui_handler As *IDocHostUIHandler_Internal
web_browser_events As *IDispatch_Internal '*DWebBrowserEvents2
End Type
Type IOleInPlaceFrameVtbl
'IUnknown
QueryInterface As VoidPtr
AddRef As VoidPtr
Release As VoidPtr
'IOleInPlaceFrame
GetWindow As VoidPtr
ContextSensitiveHelp As VoidPtr
GetBorder As VoidPtr
RequestBorderSpace As VoidPtr
SetBorderSpace As VoidPtr
SetActiveObject As VoidPtr
InsertMenus As VoidPtr
SetMenu As VoidPtr
RemoveMenus As VoidPtr
SetStatusText As VoidPtr
EnableModeless As VoidPtr
TranslateAccelerator As VoidPtr
End Type
Type IOleInPlaceFrame_Internal
lpVtbl As *IOleInPlaceFrameVtbl
End Type
Type IOleInPlaceSiteVtbl
'IUnknown
QueryInterface As VoidPtr
AddRef As VoidPtr
Release As VoidPtr
'IOleInPlaceSite
GetWindow As VoidPtr
ContextSensitiveHelp As VoidPtr
CanInPlaceActivate As VoidPtr
OnInPlaceActivate As VoidPtr
OnUIActivate As VoidPtr
GetWindowContext As VoidPtr
Scroll As VoidPtr
OnUIDeactivate As VoidPtr
OnInPlaceDeactivate As VoidPtr
DiscardUndoState As VoidPtr
DeactivateAndUndo As VoidPtr
OnPosRectChange As VoidPtr
End Type
Type IOleInPlaceSite_Internal
lpVtbl As *IOleInPlaceFrameVtbl
ole_client_site As *IOleClientSite_Internal
ole_in_place_frame As *IOleInPlaceFrame_Internal
browser_object As VoidPtr
hwnd As HWND
End Type
Type IStorageVtbl
'IUnknown
QueryInterface As VoidPtr
AddRef As VoidPtr
Release As VoidPtr
'IStorage
CreateStream As VoidPtr
OpenStream As VoidPtr
CreateStorage As VoidPtr
OpenStorage As VoidPtr
CopyTo As VoidPtr
MoveElementTo As VoidPtr
Commit As VoidPtr
Revert As VoidPtr
EnumElements As VoidPtr
DestroyElement As VoidPtr
RenameElement As VoidPtr
SetElementTimes As VoidPtr
SetClass As VoidPtr
SetStateBits As VoidPtr
Stat As VoidPtr
End Type
Type IStorage_Internal
lpVtbl As *IStorageVtbl
End Type
Dim pSink_WebBrowser As *IDispatch_Internal
Dim ole_client_site As *IOleClientSite_Internal
Dim storage As *IStorage_Internal
Dim ole_in_place_site As *IOleInPlaceSite_Internal
Dim ole_in_place_frame As *IOleInPlaceFrame_Internal
Dim doc_host_ui_handler As *IDocHostUIHandler_Internal
コード: 全て選択
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
Debug
'IDispatch(Sink)
pSink_WebBrowser=GlobalAlloc(GPTR,SizeOf(IDispatch_Internal))
'IStorage
storage = GlobalAlloc(GPTR,SizeOf(IStorage_Internal))
'IOleInPlaceFrame
ole_in_place_frame=GlobalAlloc(GPTR,SizeOf(IOleInPlaceFrame_Internal))
'IOleInPlaceSite
ole_in_place_site=GlobalAlloc(GPTR,SizeOf(IOleInPlaceSite_Internal))
'IDocHostUIHandler
doc_host_ui_handler=GlobalAlloc(GPTR,SizeOf(IDocHostUIHandler_Internal))
'IOleClientSite
ole_client_site=GlobalAlloc(GPTR,SizeOf(IOleClientSite_Internal))
GlobalFree(pSink_WebBrowser)
GlobalFree(storage)
GlobalFree(ole_in_place_frame)
GlobalFree(ole_in_place_site)
GlobalFree(doc_host_ui_handler)
GlobalFree(ole_client_site)
Debug
End Sub
「実行」をクリックする代わりにステップ実行してもGlobalFree(ole_client_site)あたりで強制終了します。
ステップ実行の途中でデバッガに強制終了されて思うようにデバッグが進みません。調査をお願いします。当方の環境 Windows XP Home SP2、ActiveBasic 4.24です。
※本当はもっと複雑なプログラムで、そこからエラーになる要素を抜き出したものです。