Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d6db3732
Commit
d6db3732
authored
Jul 31, 2010
by
David Hedberg
Committed by
Alexandre Julliard
Aug 02, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
explorerframe: Add some infrastructure to register the NamespaceTreeControl CLSID.
parent
87212d51
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
124 additions
and
0 deletions
+124
-0
Makefile.in
dlls/explorerframe/Makefile.in
+1
-0
eframe.rc
dlls/explorerframe/eframe.rc
+22
-0
explorerframe.inf
dlls/explorerframe/explorerframe.inf
+17
-0
explorerframe.spec
dlls/explorerframe/explorerframe.spec
+2
-0
explorerframe_main.c
dlls/explorerframe/explorerframe_main.c
+81
-0
wine.inf.in
tools/wine.inf.in
+1
-0
No files found.
dlls/explorerframe/Makefile.in
View file @
d6db3732
...
...
@@ -11,6 +11,7 @@ C_SRCS = \
nstc.c
RC_SRCS
=
\
eframe.rc
\
version.rc
@MAKE_DLL_RULES@
dlls/explorerframe/eframe.rc
0 → 100644
View file @
d6db3732
/*
* ExplorerFrame main resource file
*
* Copyright 2010 David Hedberg
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/* @makedep: explorerframe.inf */
REGINST REGINST explorerframe.inf
dlls/explorerframe/explorerframe.inf
0 → 100644
View file @
d6db3732
[version]
Signature="$CHICAGO$"
[RegisterDll]
AddReg=Classes.Reg
[UnregisterDll]
DelReg=Classes.Reg
[Classes.Reg]
; For some reason called "ListView" in the registry.
HKCR,"CLSID\%CLSID_NamespaceTreeControl%",,,"Shell Name Space ListView"
HKCR,"CLSID\%CLSID_NamespaceTreeControl%\InProcServer32",,,"%MODULE%"
HKCR,"CLSID\%CLSID_NamespaceTreeControl%\InProcServer32","ThreadingModel",,"Apartment"
[Strings]
MODULE="explorerframe.dll"
dlls/explorerframe/explorerframe.spec
View file @
d6db3732
...
...
@@ -5,3 +5,5 @@
@ stdcall -private DllCanUnloadNow()
@ stdcall -private DllGetClassObject(ptr ptr ptr)
@ stdcall -private DllGetVersion(ptr)
@ stdcall -private DllRegisterServer()
@ stdcall -private DllUnregisterServer()
dlls/explorerframe/explorerframe_main.c
View file @
d6db3732
...
...
@@ -19,6 +19,7 @@
*/
#include <stdarg.h>
#include <stdio.h>
#define COBJMACROS
#define NONAMELESSUNION
...
...
@@ -26,8 +27,11 @@
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winreg.h"
#include "shlwapi.h"
#include "advpub.h"
#include "shobjidl.h"
#include "wine/debug.h"
...
...
@@ -203,3 +207,80 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
return
CLASS_E_CLASSNOTAVAILABLE
;
}
/*************************************************************************
* Register/Unregister DLL, based on shdocvw/factory.c
*/
static
HRESULT
reg_install
(
LPCSTR
section
,
STRTABLEA
*
strtable
)
{
HRESULT
(
WINAPI
*
pRegInstall
)(
HMODULE
hm
,
LPCSTR
pszSection
,
const
STRTABLEA
*
pstTable
);
HMODULE
hadvpack
;
HRESULT
hres
;
static
const
WCHAR
advpackW
[]
=
{
'a'
,
'd'
,
'v'
,
'p'
,
'a'
,
'c'
,
'k'
,
'.'
,
'd'
,
'l'
,
'l'
,
0
};
hadvpack
=
LoadLibraryW
(
advpackW
);
pRegInstall
=
(
void
*
)
GetProcAddress
(
hadvpack
,
"RegInstall"
);
hres
=
pRegInstall
(
explorerframe_hinstance
,
section
,
strtable
);
FreeLibrary
(
hadvpack
);
return
hres
;
}
#define INF_SET_CLSID(clsid) \
do \
{ \
static CHAR name[] = "CLSID_" #clsid; \
\
pse[i].pszName = name; \
clsids[i++] = &CLSID_ ## clsid; \
} while (0)
static
HRESULT
register_server
(
BOOL
doregister
)
{
STRTABLEA
strtable
;
STRENTRYA
pse
[
1
];
static
CLSID
const
*
clsids
[
1
];
unsigned
int
i
=
0
;
HRESULT
hres
;
INF_SET_CLSID
(
NamespaceTreeControl
);
for
(
i
=
0
;
i
<
sizeof
(
pse
)
/
sizeof
(
pse
[
0
]);
i
++
)
{
pse
[
i
].
pszValue
=
HeapAlloc
(
GetProcessHeap
(),
0
,
39
);
sprintf
(
pse
[
i
].
pszValue
,
"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}"
,
clsids
[
i
]
->
Data1
,
clsids
[
i
]
->
Data2
,
clsids
[
i
]
->
Data3
,
clsids
[
i
]
->
Data4
[
0
],
clsids
[
i
]
->
Data4
[
1
],
clsids
[
i
]
->
Data4
[
2
],
clsids
[
i
]
->
Data4
[
3
],
clsids
[
i
]
->
Data4
[
4
],
clsids
[
i
]
->
Data4
[
5
],
clsids
[
i
]
->
Data4
[
6
],
clsids
[
i
]
->
Data4
[
7
]);
}
strtable
.
cEntries
=
sizeof
(
pse
)
/
sizeof
(
pse
[
0
]);
strtable
.
pse
=
pse
;
hres
=
reg_install
(
doregister
?
"RegisterDll"
:
"UnregisterDll"
,
&
strtable
);
for
(
i
=
0
;
i
<
sizeof
(
pse
)
/
sizeof
(
pse
[
0
]);
i
++
)
HeapFree
(
GetProcessHeap
(),
0
,
pse
[
i
].
pszValue
);
return
hres
;
}
#undef INF_SET_CLSID
/*************************************************************************
* DllRegisterServer (ExplorerFrame.@)
*/
HRESULT
WINAPI
DllRegisterServer
(
void
)
{
return
register_server
(
TRUE
);
}
/*************************************************************************
* DllUnregisterServer (ExplorerFrame.@)
*/
HRESULT
WINAPI
DllUnregisterServer
(
void
)
{
return
register_server
(
FALSE
);
}
tools/wine.inf.in
View file @
d6db3732
...
...
@@ -2507,6 +2507,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
11,,dsound.dll,1
11,,dswave.dll,1
11,,dxdiagn.dll,1
11,,explorerframe.dll,1
11,,gameux.dll,1
11,,hhctrl.ocx,1
11,,hlink.dll,1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment