Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/programs/oleview/main.h
4389 views
1
/*
2
* OleView (main.h)
3
*
4
* Copyright 2006 Piotr Caban
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19
*/
20
21
#define COBJMACROS
22
23
#include <windows.h>
24
#include <winreg.h>
25
#include <commctrl.h>
26
#include <commdlg.h>
27
#include <unknwn.h>
28
29
#include "resource.h"
30
31
#define MAX_LOAD_STRING 256
32
#define MAX_WINDOW_WIDTH 30000
33
#define MIN_FUNC_ID 0x60000000
34
#define MIN_VAR_ID 0x40000000
35
#define TAB_SIZE 4
36
37
#define STATUS_WINDOW 2000
38
#define TREE_WINDOW 2001
39
#define TAB_WINDOW 2002
40
#define TYPELIB_TREE 2003
41
42
/*ItemInfo flags */
43
#define REGTOP 1
44
#define REGPATH 2
45
#define SHOWALL 4
46
#define INTERFACE 8
47
48
typedef struct
49
{
50
HWND hMainWnd;
51
HWND hPaneWnd;
52
HWND hStatusBar;
53
HWND hToolBar;
54
HWND hTree;
55
HWND hDetails;
56
HWND hTypeLibWnd;
57
HINSTANCE hMainInst;
58
BOOL bExpert;
59
DWORD dwClsCtx;
60
WCHAR wszMachineName[MAX_LOAD_STRING];
61
}GLOBALS;
62
63
typedef struct
64
{
65
HWND left;
66
HWND right;
67
INT pos;
68
INT size;
69
INT width;
70
INT height;
71
INT last;
72
}PANE;
73
74
typedef struct
75
{
76
/* Main TreeView entries: */
77
HTREEITEM hOC; /* Object Classes */
78
HTREEITEM hGBCC; /* Grouped by Component Category */
79
HTREEITEM hO1O; /* OLE 1.0 Objects */
80
HTREEITEM hCLO; /* COM Library Objects */
81
HTREEITEM hAO; /* All Objects */
82
HTREEITEM hAID; /* Application IDs */
83
HTREEITEM hTL; /* Type Libraries */
84
HTREEITEM hI; /* Interfaces */
85
}TREE;
86
87
typedef struct
88
{
89
CHAR cFlag;
90
WCHAR info[MAX_LOAD_STRING];
91
WCHAR clsid[MAX_LOAD_STRING];
92
WCHAR path[MAX_LOAD_STRING];
93
BOOL loaded;
94
IUnknown *pU;
95
}ITEM_INFO;
96
97
typedef struct
98
{
99
HWND hStatic;
100
HWND hTab;
101
HWND hReg;
102
}DETAILS;
103
104
typedef struct
105
{
106
HWND hPaneWnd;
107
HWND hTree;
108
HWND hEdit;
109
HWND hStatusBar;
110
WCHAR wszFileName[MAX_LOAD_STRING];
111
}TYPELIB;
112
113
typedef struct
114
{
115
WCHAR *idl;
116
WCHAR wszInsertAfter[MAX_LOAD_STRING];
117
INT idlLen;
118
BOOL bPredefine;
119
BOOL bHide;
120
}TYPELIB_DATA;
121
122
extern GLOBALS globals;
123
extern TREE tree;
124
extern TYPELIB typelib;
125
126
/* Predefinitions: */
127
/* details.c */
128
HWND CreateDetailsWindow(HINSTANCE hInst);
129
void RefreshDetails(HTREEITEM item);
130
131
/* oleview.c */
132
void RefreshMenu(HTREEITEM item);
133
134
/* pane.c */
135
BOOL CreatePanedWindow(HWND hWnd, HWND *hWndCreated, HINSTANCE hInst);
136
BOOL PaneRegisterClassW(void);
137
void SetLeft(HWND hParent, HWND hWnd);
138
void SetRight(HWND hParent, HWND hWnd);
139
140
/* tree.c */
141
void EmptyTree(void);
142
void AddTreeEx(void);
143
void AddTree(void);
144
HWND CreateTreeWindow(HINSTANCE hInst);
145
BOOL CreateRegPath(HTREEITEM item, WCHAR *buffer, int bufSize);
146
void CreateInst(HTREEITEM item, WCHAR *wszMachineName);
147
void ReleaseInst(HTREEITEM item);
148
149
/* typelib.c */
150
BOOL CreateTypeLibWindow(HINSTANCE hInst, WCHAR *wszFileName);
151
BOOL TypeLibRegisterClassW(void);
152
void UpdateData(HTREEITEM item);
153
154
/* interface.c */
155
BOOL IsInterface(HTREEITEM item);
156
void InterfaceViewer(HTREEITEM item);
157
158