-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCShellBrowser.inc
More file actions
125 lines (108 loc) · 3.23 KB
/
CShellBrowser.inc
File metadata and controls
125 lines (108 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
?SERVICEPROVIDER equ 1 ;support IServiceProvider
?OLECOMMANDTARGET equ 1 ;support IOleCommandTarget
?DROPTARGET equ 1 ;support IDropTarget
?DRAGDROPHELPER equ 1 ;use DragDropHelper
?OLEINPLACEFRAME equ 0 ;support IOleInPlaceFrame+IOleInPlaceUIWindow
?WEBBROWSER equ 0 ;browsing in explorer for win98 (not finished)
LPDROPTARGETHELPER typedef ptr IDropTargetHelper
if ?SERVICEPROVIDER
include servprov.inc
endif
if ?OLECOMMANDTARGET
include docobj.inc
endif
if ?WEBBROWSER
include exdisp.inc
endif
CShellBrowser struct
ifdef INSIDE_CShellBrowser
BEGIN_COM_MAP CShellBrowser
COM_INTERFACE_ENTRY IShellBrowser
if ?SERVICEPROVIDER
COM_INTERFACE_ENTRY IServiceProvider
endif
if ?OLECOMMANDTARGET
COM_INTERFACE_ENTRY IOleCommandTarget
endif
if ?DROPTARGET
COM_INTERFACE_ENTRY IDropTarget
endif
if ?OLEINPLACEFRAME
COM_INTERFACE_ENTRY_EX IOleInPlaceFrame, IOleInPlaceUIWindow, IOleWindow
endif
END_COM_MAP
hWnd HWND ?
hWndTV HWND ?
hWndView HWND ?
hWndSB HWND ?
hWndFocus HWND ?
pShellFolder LPSHELLFOLDER ?
pShellView LPSHELLVIEW ?
pContextMenu2 LPCONTEXTMENU2 ?
if ?OLEINPLACEFRAME
pOleInPlaceActiveObject LPOLEINPLACEACTIVEOBJECT ?
endif
if ?WEBBROWSER
pWebBrowser LPWEBBROWSER2 ?
endif
pMalloc LPMALLOC ?
pStream LPSTREAM ?
hSHNotify HANDLE ?
dwSizeTV DWORD ?
rect RECT <>
bCreateView BOOLEAN ? ;create right panel views
bGetUIObjectOf BOOLEAN ? ;call IShellFolder::GetUIObjectOf for context menu
bCompMenus BOOLEAN ? ;support composite menus
bStatusBar BOOLEAN ? ;status bar is visible
bDropTarget BOOLEAN ? ;treeview is a drop target
bDontRespond BOOLEAN ? ;do not respond to DDE messages
bLabelEdit BOOLEAN ? ;currently in label edit mode
bRButton BOOLEAN ? ;drag&drop with right mouse button?
endif
CShellBrowser ends
Create@CShellBrowser PROTO :LPUNKNOWN
Show@CShellBrowser PROTO :ptr CShellBrowser, :HWND
TranslateAccelerator@CShellBrowser PROTO :ptr CShellBrowser, :ptr MSG
GetFullPidl@CShellBrowser PROTO :HANDLE
Deinit@IServiceProvider PROTO
GetFolder PROTO :HANDLE
InsertChildItems PROTO :HANDLE
_StrToLong PROTO :LPSTR
FindPidl PROTO :LPITEMIDLIST, :BOOL
NavigateToPidl PROTO :LPITEMIDLIST
Pidl_Copy PROTO :LPITEMIDLIST
Pidl_GetLastItem PROTO :LPITEMIDLIST
Pidl_SkipLastItem PROTO :LPITEMIDLIST, :ptr LPITEMIDLIST
externdef CServiceProviderVtbl: DWORD
externdef COleCommandTargetVtbl: DWORD
externdef CDropTargetVtbl: DWORD
externdef COleInPlaceFrameVtbl: DWORD
externdef g_DllRefCount:DWORD
externdef g_bGetUIObjectOf:BOOLEAN
externdef g_bCreateView:BOOLEAN
externdef g_bCompMenus:BOOLEAN
externdef g_aApplication:DWORD
externdef g_aTopic:DWORD
externdef g_rect:RECT
externdef g_szPath:BYTE
if ?DRAGDROPHELPER
externdef g_pDropTargetHelper:LPDROPTARGETHELPER
endif
;--- macros + equates
@MakeStubs macro classname, interface, memberlist:VARARG
for member,<memberlist>
member&_:
sub DWORD ptr [esp+4], classname&._&interface
jmp member
endm
endm
@MakeStubsEx macro classname, interface, memberlist:VARARG
for member,<memberlist>
member&_:
sub DWORD ptr [esp+4], classname&._&interface
% jmp member&@&classname
endm
endm
ifdef _DEBUG
externdef DEBUGPREFIX:LPSTR
endif