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
f857ad52
Commit
f857ad52
authored
Jan 20, 2012
by
Alistair Leslie-Hughes
Committed by
Alexandre Julliard
Jul 17, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mmcndmgr: Implement IMMCVersionInfo.
parent
baed448f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
193 additions
and
5 deletions
+193
-5
configure
configure
+1
-0
configure.ac
configure.ac
+1
-0
mmcndmgr.c
dlls/mmcndmgr/mmcndmgr.c
+118
-5
Makefile.in
dlls/mmcndmgr/tests/Makefile.in
+7
-0
mmcndmgr.c
dlls/mmcndmgr/tests/mmcndmgr.c
+66
-0
No files found.
configure
View file @
f857ad52
...
...
@@ -15296,6 +15296,7 @@ wine_fn_config_dll midimap enable_midimap
wine_fn_config_dll mlang enable_mlang implib
wine_fn_config_test dlls/mlang/tests mlang_test
wine_fn_config_dll mmcndmgr enable_mmcndmgr
wine_fn_config_test dlls/mmcndmgr/tests mmcndmgr_test
wine_fn_config_dll mmdevapi enable_mmdevapi
wine_fn_config_test dlls/mmdevapi/tests mmdevapi_test
wine_fn_config_dll mmdevldr.vxd enable_win16
...
...
configure.ac
View file @
f857ad52
...
...
@@ -2701,6 +2701,7 @@ WINE_CONFIG_DLL(midimap)
WINE_CONFIG_DLL(mlang,,[implib])
WINE_CONFIG_TEST(dlls/mlang/tests)
WINE_CONFIG_DLL(mmcndmgr)
WINE_CONFIG_TEST(dlls/mmcndmgr/tests)
WINE_CONFIG_DLL(mmdevapi)
WINE_CONFIG_TEST(dlls/mmdevapi/tests)
WINE_CONFIG_DLL(mmdevldr.vxd,enable_win16)
...
...
dlls/mmcndmgr/mmcndmgr.c
View file @
f857ad52
...
...
@@ -30,21 +30,134 @@
#include "wine/debug.h"
#include "wine/library.h"
#include "initguid.h"
#include "mmc.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
mmc
);
static
HINSTANCE
MMC_hInstance
;
HRESULT
WINAPI
DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
riid
,
LPVOID
*
ppv
)
static
HRESULT
WINAPI
mmcversion_QueryInterface
(
IMMCVersionInfo
*
iface
,
REFIID
riid
,
void
**
ppv
)
{
FIXME
(
"(%s, %s, %p): stub
\n
"
,
debugstr_guid
(
rclsid
),
debugstr_guid
(
riid
),
ppv
);
if
(
!
ppv
)
return
E_INVALIDARG
;
TRACE
(
"(%p)->(%s %p)
\n
"
,
iface
,
debugstr_guid
(
riid
),
ppv
);
return
E_NOTIMPL
;
if
(
IsEqualGUID
(
riid
,
&
IID_IMMCVersionInfo
)
||
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
)
{
*
ppv
=
iface
;
}
else
{
TRACE
(
"Unsupported interface %s
\n
"
,
debugstr_guid
(
riid
));
*
ppv
=
NULL
;
return
E_NOINTERFACE
;
}
IMMCVersionInfo_AddRef
(
iface
);
return
S_OK
;
}
static
ULONG
WINAPI
mmcversion_AddRef
(
IMMCVersionInfo
*
iface
)
{
return
2
;
}
static
ULONG
WINAPI
mmcversion_Release
(
IMMCVersionInfo
*
iface
)
{
return
1
;
}
static
HRESULT
WINAPI
mmcversion_GetMMCVersion
(
IMMCVersionInfo
*
iface
,
LONG
*
pVersionMajor
,
LONG
*
pVersionMinor
)
{
TRACE
(
"(%p, %p, %p): stub
\n
"
,
iface
,
pVersionMajor
,
pVersionMinor
);
if
(
pVersionMajor
)
*
pVersionMajor
=
3
;
if
(
pVersionMinor
)
*
pVersionMinor
=
0
;
return
S_OK
;
}
static
const
struct
IMMCVersionInfoVtbl
mmcversionVtbl
=
{
mmcversion_QueryInterface
,
mmcversion_AddRef
,
mmcversion_Release
,
mmcversion_GetMMCVersion
};
static
IMMCVersionInfo
mmcVersionInfo
=
{
&
mmcversionVtbl
};
/***********************************************************
* ClassFactory implementation
*/
typedef
HRESULT
(
*
CreateInstanceFunc
)(
IUnknown
*
,
REFIID
,
void
**
);
static
HRESULT
WINAPI
ClassFactory_QueryInterface
(
IClassFactory
*
iface
,
REFGUID
riid
,
void
**
ppvObject
)
{
if
(
IsEqualGUID
(
&
IID_IClassFactory
,
riid
)
||
IsEqualGUID
(
&
IID_IUnknown
,
riid
))
{
IClassFactory_AddRef
(
iface
);
*
ppvObject
=
iface
;
return
S_OK
;
}
WARN
(
"not supported iid %s
\n
"
,
debugstr_guid
(
riid
));
*
ppvObject
=
NULL
;
return
E_NOINTERFACE
;
}
static
ULONG
WINAPI
ClassFactory_AddRef
(
IClassFactory
*
iface
)
{
TRACE
(
"(%p)
\n
"
,
iface
);
return
2
;
}
static
ULONG
WINAPI
ClassFactory_Release
(
IClassFactory
*
iface
)
{
TRACE
(
"(%p)
\n
"
,
iface
);
return
1
;
}
static
HRESULT
WINAPI
ClassFactory_CreateInstance
(
IClassFactory
*
iface
,
IUnknown
*
outer
,
REFIID
riid
,
void
**
ppv
)
{
TRACE
(
"(%p %s %p)
\n
"
,
outer
,
debugstr_guid
(
riid
),
ppv
);
return
IMMCVersionInfo_QueryInterface
(
&
mmcVersionInfo
,
riid
,
ppv
);
}
static
HRESULT
WINAPI
ClassFactory_LockServer
(
IClassFactory
*
iface
,
BOOL
fLock
)
{
TRACE
(
"(%p)->(%x)
\n
"
,
iface
,
fLock
);
return
S_OK
;
}
static
const
IClassFactoryVtbl
MMCClassFactoryVtbl
=
{
ClassFactory_QueryInterface
,
ClassFactory_AddRef
,
ClassFactory_Release
,
ClassFactory_CreateInstance
,
ClassFactory_LockServer
};
static
IClassFactory
MMCVersionInfoFactory
=
{
&
MMCClassFactoryVtbl
};
HRESULT
WINAPI
DllGetClassObject
(
REFCLSID
riid
,
REFIID
iid
,
LPVOID
*
ppv
)
{
TRACE
(
"%s %s %p
\n
"
,
debugstr_guid
(
riid
),
debugstr_guid
(
iid
),
ppv
);
if
(
IsEqualCLSID
(
riid
,
&
CLSID_MMCVersionInfo
))
{
TRACE
(
"(CLSID_MMCVersionInfo %s %p)
\n
"
,
debugstr_guid
(
riid
),
ppv
);
return
IClassFactory_QueryInterface
(
&
MMCVersionInfoFactory
,
iid
,
ppv
);
}
FIXME
(
"Unsupported interface %s
\n
"
,
debugstr_guid
(
riid
));
return
CLASS_E_CLASSNOTAVAILABLE
;
}
HRESULT
WINAPI
DllRegisterServer
(
void
)
{
return
__wine_register_resources
(
MMC_hInstance
);
...
...
dlls/mmcndmgr/tests/Makefile.in
0 → 100644
View file @
f857ad52
TESTDLL
=
mmcndmgr.dll
IMPORTS
=
ole32 shlwapi uuid
C_SRCS
=
\
mmcndmgr.c
@MAKE_TEST_RULES@
dlls/mmcndmgr/tests/mmcndmgr.c
0 → 100644
View file @
f857ad52
/*
*
* Copyright 2011 Alistair Leslie-Hughes
*
* 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
*/
#define COBJMACROS
#include <stdio.h>
#include "windows.h"
#include "ole2.h"
#include "dispex.h"
#include "wine/test.h"
#include <initguid.h>
#include <mmc.h>
static
void
test_get_version
(
void
)
{
IMMCVersionInfo
*
ver_info
=
NULL
;
HRESULT
hr
;
hr
=
CoCreateInstance
(
&
CLSID_MMCVersionInfo
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IMMCVersionInfo
,
(
void
**
)
&
ver_info
);
if
(
hr
!=
S_OK
)
{
trace
(
"MMCVersionInfo interface not registered.
\n
"
);
}
else
{
LONG
lMajor
,
lMinor
;
hr
=
IMMCVersionInfo_GetMMCVersion
(
ver_info
,
&
lMajor
,
&
lMinor
);
ok
(
hr
==
S_OK
,
"got 0x%08x, expected 0x%08x
\n
"
,
hr
,
S_OK
);
if
(
hr
==
S_OK
)
trace
(
"MMC Version is %d.%d
\n
"
,
lMajor
,
lMinor
);
}
if
(
ver_info
)
{
IMMCVersionInfo_Release
(
ver_info
);
}
}
START_TEST
(
mmcndmgr
)
{
CoInitialize
(
NULL
);
test_get_version
();
CoUninitialize
();
}
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