5 * Some class IDs. Let's hope they are unique enough.
8 static const CLSID CLSID_git_shell_ext
= {
9 0xca586c80, 0x7c84, 0x4b88,
10 {0x85, 0x37, 0x72, 0x67, 0x24, 0xdf, 0x69, 0x29}
13 static const IID IID_git_shell_ext
= {
14 0xca586c81, 0x7c84, 0x4b88,
15 {0x85, 0x37, 0x72, 0x67, 0x24, 0xdf, 0x69, 0x29}
18 static const CLSID CLSID_git_menu
= {
19 0xca586c82, 0x7c84, 0x4b88,
20 {0x85, 0x37, 0x72, 0x67, 0x24, 0xdf, 0x69, 0x29}
23 static const IID IID_git_menu
= {
24 0xca586c83, 0x7c84, 0x4b88,
25 {0x85, 0x37, 0x72, 0x67, 0x24, 0xdf, 0x69, 0x29}
28 // {62871171-DCED-4caf-8483-952EE3D610F9}
29 static const IID IID_git_columns
= {
30 0x62871171, 0xdced, 0x4caf,
31 {0x84, 0x83, 0x95, 0x2e, 0xe3, 0xd6, 0x10, 0xf9}
34 extern struct git_shell_ext_virtual_table
36 STDMETHOD(query_interface
)(void *, REFIID
, PVOID
*);
37 STDMETHOD_(ULONG
, add_ref
)(void *);
38 STDMETHOD_(ULONG
, release
)(void *);
39 STDMETHOD(initialize
)(void *,
40 LPCITEMIDLIST
, LPDATAOBJECT
, HKEY
);
41 } git_shell_ext_virtual_table
;
43 #define DEFINE_STANDARD_METHODS(name) \
44 static ULONG STDMETHODCALLTYPE add_ref_##name(void *p) { \
45 struct name *this_ = p; \
46 return add_ref_git_data(this_->git_data); \
49 static ULONG STDMETHODCALLTYPE \
50 release_##name(void *p) { \
51 struct name *this_ = p; \
52 return release_git_data(this_->git_data); \
55 static STDMETHODIMP query_interface_##name(void *p, \
56 REFIID iid, LPVOID FAR *pointer) { \
57 struct name *this_ = p; \
58 return query_interface_git_data(this_->git_data, \
62 static STDMETHODIMP initialize_##name(void *p, \
63 LPCITEMIDLIST folder, LPDATAOBJECT data, HKEY id) { \
64 struct name *this_ = p; \
65 return initialize_git_data(this_->git_data, folder, data, id); \
68 extern DWORD object_count
;
69 extern DWORD lock_count
;
70 extern HINSTANCE hInst
;
72 STDMETHODIMP
query_interface_git_data(struct git_data
*this_
,
73 REFIID iid
, LPVOID FAR
*pointer
);
74 ULONG STDMETHODCALLTYPE
add_ref_git_data(struct git_data
*this_
);
75 ULONG STDMETHODCALLTYPE
release_git_data(struct git_data
*this_
);
76 STDMETHODIMP
initialize_git_data(struct git_data
*this_
,
78 LPDATAOBJECT data
, HKEY id
);