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
b371cc51
Commit
b371cc51
authored
Jun 26, 2018
by
Zebediah Figura
Committed by
Alexandre Julliard
Jun 26, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
devenum: Merge factory.c into devenum_main.c.
Signed-off-by:
Zebediah Figura
<
z.figura12@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
13679048
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
72 additions
and
147 deletions
+72
-147
Makefile.in
dlls/devenum/Makefile.in
+0
-1
devenum_main.c
dlls/devenum/devenum_main.c
+72
-2
devenum_private.h
dlls/devenum/devenum_private.h
+0
-10
factory.c
dlls/devenum/factory.c
+0
-134
No files found.
dlls/devenum/Makefile.in
View file @
b371cc51
...
...
@@ -5,7 +5,6 @@ DELAYIMPORTS = msvfw32
C_SRCS
=
\
createdevenum.c
\
devenum_main.c
\
factory.c
\
mediacatenum.c
\
parsedisplayname.c
...
...
dlls/devenum/devenum_main.c
View file @
b371cc51
/*
*
exported dll functions for devenum.dll
*
Device Enumeration
*
* Copyright (C) 2002 John K. Hohm
* Copyright (C) 2002 Robert Shearman
...
...
@@ -56,6 +56,76 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
return
TRUE
;
}
static
HRESULT
WINAPI
ClassFactory_QueryInterface
(
IClassFactory
*
iface
,
REFIID
iid
,
void
**
obj
)
{
TRACE
(
"(%p, %s, %p)
\n
"
,
iface
,
debugstr_guid
(
iid
),
obj
);
if
(
IsEqualGUID
(
iid
,
&
IID_IUnknown
)
||
IsEqualGUID
(
iid
,
&
IID_IClassFactory
))
{
IClassFactory_AddRef
(
iface
);
*
obj
=
iface
;
return
S_OK
;
}
*
obj
=
NULL
;
WARN
(
"no interface for %s
\n
"
,
debugstr_guid
(
iid
));
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
ClassFactory_AddRef
(
IClassFactory
*
iface
)
{
DEVENUM_LockModule
();
return
2
;
}
static
ULONG
WINAPI
ClassFactory_Release
(
IClassFactory
*
iface
)
{
DEVENUM_UnlockModule
();
return
1
;
}
static
HRESULT
WINAPI
ClassFactory_CreateInstance
(
IClassFactory
*
iface
,
IUnknown
*
outer
,
REFIID
iid
,
void
**
obj
)
{
TRACE
(
"(%p, %s, %p)
\n
"
,
outer
,
debugstr_guid
(
iid
),
obj
);
if
(
!
obj
)
return
E_POINTER
;
if
(
outer
)
return
CLASS_E_NOAGGREGATION
;
if
(
IsEqualGUID
(
&
IID_ICreateDevEnum
,
iid
))
{
*
obj
=
&
DEVENUM_CreateDevEnum
;
return
S_OK
;
}
if
(
IsEqualGUID
(
&
IID_IParseDisplayName
,
iid
))
{
*
obj
=
&
DEVENUM_ParseDisplayName
;
return
S_OK
;
}
return
CLASS_E_CLASSNOTAVAILABLE
;
}
static
HRESULT
WINAPI
ClassFactory_LockServer
(
IClassFactory
*
iface
,
BOOL
lock
)
{
if
(
lock
)
DEVENUM_LockModule
();
else
DEVENUM_UnlockModule
();
return
S_OK
;
}
static
const
IClassFactoryVtbl
ClassFactory_vtbl
=
{
ClassFactory_QueryInterface
,
ClassFactory_AddRef
,
ClassFactory_Release
,
ClassFactory_CreateInstance
,
ClassFactory_LockServer
};
static
IClassFactory
devenum_cf
=
{
&
ClassFactory_vtbl
};
/***********************************************************************
* DllGetClassObject (DEVENUM.@)
*/
...
...
@@ -69,7 +139,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
* Oh well - works just fine as it is */
if
(
IsEqualGUID
(
rclsid
,
&
CLSID_SystemDeviceEnum
)
||
IsEqualGUID
(
rclsid
,
&
CLSID_CDeviceMoniker
))
return
IClassFactory_QueryInterface
(
&
DEVENUM_ClassFactory
.
IClassFactory_iface
,
iid
,
ppv
);
return
IClassFactory_QueryInterface
(
&
devenum_cf
,
iid
,
ppv
);
FIXME
(
"CLSID: %s, IID: %s
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
iid
));
return
CLASS_E_CLASSNOTAVAILABLE
;
...
...
dlls/devenum/devenum_private.h
View file @
b371cc51
...
...
@@ -51,15 +51,6 @@ extern LONG dll_refs DECLSPEC_HIDDEN;
static
inline
void
DEVENUM_LockModule
(
void
)
{
InterlockedIncrement
(
&
dll_refs
);
}
static
inline
void
DEVENUM_UnlockModule
(
void
)
{
InterlockedDecrement
(
&
dll_refs
);
}
/**********************************************************************
* ClassFactory declaration for devenum.dll
*/
typedef
struct
{
IClassFactory
IClassFactory_iface
;
}
ClassFactoryImpl
;
enum
device_type
{
DEVICE_FILTER
,
...
...
@@ -84,7 +75,6 @@ typedef struct
MediaCatMoniker
*
DEVENUM_IMediaCatMoniker_Construct
(
void
)
DECLSPEC_HIDDEN
;
HRESULT
create_EnumMoniker
(
REFCLSID
class
,
IEnumMoniker
**
enum_mon
)
DECLSPEC_HIDDEN
;
extern
ClassFactoryImpl
DEVENUM_ClassFactory
DECLSPEC_HIDDEN
;
extern
ICreateDevEnum
DEVENUM_CreateDevEnum
DECLSPEC_HIDDEN
;
extern
IParseDisplayName
DEVENUM_ParseDisplayName
DECLSPEC_HIDDEN
;
...
...
dlls/devenum/factory.c
deleted
100644 → 0
View file @
13679048
/*
* ClassFactory implementation for DEVENUM.dll
*
* Copyright (C) 2002 John K. Hohm
* Copyright (C) 2002 Robert Shearman
*
* 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
*/
#include "devenum_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
devenum
);
/**********************************************************************
* DEVENUM_IClassFactory_QueryInterface (also IUnknown)
*/
static
HRESULT
WINAPI
DEVENUM_IClassFactory_QueryInterface
(
IClassFactory
*
iface
,
REFIID
riid
,
void
**
ppvObj
)
{
TRACE
(
"(%p)->(%s, %p)
\n
"
,
iface
,
debugstr_guid
(
riid
),
ppvObj
);
if
(
ppvObj
==
NULL
)
return
E_POINTER
;
if
(
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
||
IsEqualGUID
(
riid
,
&
IID_IClassFactory
))
{
*
ppvObj
=
iface
;
IClassFactory_AddRef
(
iface
);
return
S_OK
;
}
else
if
(
IsEqualGUID
(
riid
,
&
IID_IParseDisplayName
))
{
return
IClassFactory_CreateInstance
(
iface
,
NULL
,
riid
,
ppvObj
);
}
FIXME
(
"- no interface IID: %s
\n
"
,
debugstr_guid
(
riid
));
return
E_NOINTERFACE
;
}
/**********************************************************************
* DEVENUM_IClassFactory_AddRef (also IUnknown)
*/
static
ULONG
WINAPI
DEVENUM_IClassFactory_AddRef
(
IClassFactory
*
iface
)
{
TRACE
(
"
\n
"
);
DEVENUM_LockModule
();
return
2
;
/* non-heap based object */
}
/**********************************************************************
* DEVENUM_IClassFactory_Release (also IUnknown)
*/
static
ULONG
WINAPI
DEVENUM_IClassFactory_Release
(
IClassFactory
*
iface
)
{
TRACE
(
"
\n
"
);
DEVENUM_UnlockModule
();
return
1
;
/* non-heap based object */
}
/**********************************************************************
* DEVENUM_IClassFactory_CreateInstance
*/
static
HRESULT
WINAPI
DEVENUM_IClassFactory_CreateInstance
(
IClassFactory
*
iface
,
IUnknown
*
pUnkOuter
,
REFIID
riid
,
void
**
ppvObj
)
{
TRACE
(
"(%p)->(%p, %s, %p)
\n
"
,
iface
,
pUnkOuter
,
debugstr_guid
(
riid
),
ppvObj
);
if
(
ppvObj
==
NULL
)
return
E_POINTER
;
/* Don't support aggregation (Windows doesn't) */
if
(
pUnkOuter
!=
NULL
)
return
CLASS_E_NOAGGREGATION
;
if
(
IsEqualGUID
(
&
IID_ICreateDevEnum
,
riid
))
{
*
ppvObj
=
&
DEVENUM_CreateDevEnum
;
return
S_OK
;
}
if
(
IsEqualGUID
(
&
IID_IParseDisplayName
,
riid
))
{
*
ppvObj
=
&
DEVENUM_ParseDisplayName
;
return
S_OK
;
}
return
CLASS_E_CLASSNOTAVAILABLE
;
}
/**********************************************************************
* DEVENUM_IClassFactory_LockServer
*/
static
HRESULT
WINAPI
DEVENUM_IClassFactory_LockServer
(
IClassFactory
*
iface
,
BOOL
fLock
)
{
TRACE
(
"
\n
"
);
if
(
fLock
)
DEVENUM_LockModule
();
else
DEVENUM_UnlockModule
();
return
S_OK
;
}
/**********************************************************************
* IClassFactory_Vtbl
*/
static
const
IClassFactoryVtbl
IClassFactory_Vtbl
=
{
DEVENUM_IClassFactory_QueryInterface
,
DEVENUM_IClassFactory_AddRef
,
DEVENUM_IClassFactory_Release
,
DEVENUM_IClassFactory_CreateInstance
,
DEVENUM_IClassFactory_LockServer
};
/**********************************************************************
* static ClassFactory instance
*/
ClassFactoryImpl
DEVENUM_ClassFactory
=
{
{
&
IClassFactory_Vtbl
}
};
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