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
0df7b24b
Commit
0df7b24b
authored
Dec 16, 2002
by
Ove Kaaven
Committed by
Alexandre Julliard
Dec 16, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Wrote a Wine-compatible unknwn.idl, moving the IUnknown definition
from wine/obj_base.h to the generated unknwn.h.
parent
65a3de5a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
300 additions
and
99 deletions
+300
-99
Makefile.in
include/Makefile.in
+1
-1
unknwn.h
include/unknwn.h
+206
-28
unknwn.idl
include/unknwn.idl
+93
-0
obj_base.h
include/wine/obj_base.h
+0
-70
No files found.
include/Makefile.in
View file @
0df7b24b
...
...
@@ -5,6 +5,7 @@ VPATH = @srcdir@
MODULE
=
none
IDL_SRCS
=
\
unknwn.idl
\
wtypes.idl
WINDOWS_INCLUDES
=
\
...
...
@@ -125,7 +126,6 @@ WINDOWS_INCLUDES = \
tapi.h
\
tchar.h
\
tlhelp32.h
\
unknwn.h
\
urlmon.h
\
uuids.h
\
ver.h
\
...
...
include/unknwn.h
View file @
0df7b24b
/*
* Copyright (C) 1999 Francois Gouget
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE__
/*** Autogenerated by WIDL 0.1 from unknwn.idl - Do not edit ***/
#include "rpc.h"
#include "rpcndr.h"
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif
#endif
#ifndef __WINE_UNKNWN_H
#define __WINE_UNKNWN_H
#ifndef __WIDL_UNKNWN_H
#define __WIDL_UNKNWN_H
#ifdef __cplusplus
extern
"C"
{
#endif
#include "wtypes.h"
#define __WINE_INCLUDE_UNKNWN
#include "wine/obj_base.h"
#undef __WINE_INCLUDE_UNKNWN
#if defined(__cplusplus) && !defined(CINTERFACE)
#ifdef ICOM_USE_COM_INTERFACE_ATTRIBUTE
#define ICOM_COM_INTERFACE_ATTRIBUTE __attribute__((com_interface))
#else
#define ICOM_COM_INTERFACE_ATTRIBUTE
#endif
#else
#ifdef ICOM_MSVTABLE_COMPAT
#define ICOM_MSVTABLE_COMPAT_FIELDS \
long dummyRTTI1; \
long dummyRTTI2;
#define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 0,0,
#else
#define ICOM_MSVTABLE_COMPAT_FIELDS
#define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
#endif
#endif
typedef
struct
IUnknown
IUnknown
;
typedef
IUnknown
*
LPUNKNOWN
;
/*****************************************************************************
* IUnknown interface
*/
DEFINE_GUID
(
IID_IUnknown
,
0x00000000
,
0x0000
,
0x0000
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x46
);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct
IUnknown
{
virtual
HRESULT
CALLBACK
QueryInterface
(
REFIID
riid
,
void
**
ppvObject
)
=
0
;
virtual
ULONG
CALLBACK
AddRef
(
)
=
0
;
virtual
ULONG
CALLBACK
Release
(
)
=
0
;
}
ICOM_COM_INTERFACE_ATTRIBUTE
;
#else
typedef
struct
IUnknownVtbl
IUnknownVtbl
;
struct
IUnknown
{
const
IUnknownVtbl
*
lpVtbl
;
};
struct
IUnknownVtbl
{
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT
(
CALLBACK
*
QueryInterface
)(
IUnknown
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
CALLBACK
*
AddRef
)(
IUnknown
*
This
);
ULONG
(
CALLBACK
*
Release
)(
IUnknown
*
This
);
};
#define IUnknown_IMETHODS \
ICOM_METHOD2 (HRESULT,QueryInterface,REFIID,riid,void**,ppvObject) \
ICOM_METHOD (ULONG,AddRef) \
ICOM_METHOD (ULONG,Release)
/*** IUnknown methods ***/
#define IUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IUnknown_Release(p) (p)->lpVtbl->Release(p)
#endif
HRESULT
CALLBACK
IUnknown_QueryInterface_Proxy
(
IUnknown
*
This
,
REFIID
riid
,
void
**
ppvObject
);
void
__RPC_STUB
IUnknown_QueryInterface_Stub
(
struct
IRpcStubBuffer
*
This
,
struct
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
ULONG
CALLBACK
IUnknown_AddRef_Proxy
(
IUnknown
*
This
);
void
__RPC_STUB
IUnknown_AddRef_Stub
(
struct
IRpcStubBuffer
*
This
,
struct
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
ULONG
CALLBACK
IUnknown_Release_Proxy
(
IUnknown
*
This
);
void
__RPC_STUB
IUnknown_Release_Stub
(
struct
IRpcStubBuffer
*
This
,
struct
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
typedef
struct
IClassFactory
IClassFactory
;
typedef
IClassFactory
*
LPCLASSFACTORY
;
/*****************************************************************************
* IClassFactory interface
*/
DEFINE_GUID
(
IID_IClassFactory
,
0x00000001
,
0x0000
,
0x0000
,
0xc0
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x46
);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct
IClassFactory
:
IUnknown
{
virtual
HRESULT
CALLBACK
CreateInstance
(
IUnknown
*
pUnkOuter
,
REFIID
riid
,
void
**
ppvObject
)
=
0
;
virtual
HRESULT
CALLBACK
LockServer
(
BOOL
fLock
)
=
0
;
}
ICOM_COM_INTERFACE_ATTRIBUTE
;
#else
typedef
struct
IClassFactoryVtbl
IClassFactoryVtbl
;
struct
IClassFactory
{
const
IClassFactoryVtbl
*
lpVtbl
;
};
struct
IClassFactoryVtbl
{
ICOM_MSVTABLE_COMPAT_FIELDS
/*** IUnknown methods ***/
HRESULT
(
CALLBACK
*
QueryInterface
)(
IUnknown
*
This
,
REFIID
riid
,
void
**
ppvObject
);
ULONG
(
CALLBACK
*
AddRef
)(
IUnknown
*
This
);
#endif
/* __WINE_UNKNWN_H */
ULONG
(
CALLBACK
*
Release
)(
IUnknown
*
This
);
/*** IClassFactory methods ***/
HRESULT
(
CALLBACK
*
CreateInstance
)(
IClassFactory
*
This
,
IUnknown
*
pUnkOuter
,
REFIID
riid
,
void
**
ppvObject
);
HRESULT
(
CALLBACK
*
LockServer
)(
IClassFactory
*
This
,
BOOL
fLock
);
};
#define IClassFactory_IMETHODS \
IUnknown_IMETHODS \
ICOM_METHOD3 (HRESULT,CreateInstance,IUnknown*,pUnkOuter,REFIID,riid,void**,ppvObject) \
ICOM_METHOD1 (HRESULT,LockServer,BOOL,fLock)
/*** IUnknown methods ***/
#define IClassFactory_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IClassFactory_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IClassFactory_Release(p) (p)->lpVtbl->Release(p)
/*** IClassFactory methods ***/
#define IClassFactory_CreateInstance(p,a,b,c) (p)->lpVtbl->CreateInstance(p,a,b,c)
#define IClassFactory_LockServer(p,a) (p)->lpVtbl->LockServer(p,a)
#endif
HRESULT
CALLBACK
IClassFactory_RemoteCreateInstance_Proxy
(
IClassFactory
*
This
,
REFIID
riid
,
IUnknown
**
ppvObject
);
void
__RPC_STUB
IClassFactory_RemoteCreateInstance_Stub
(
struct
IRpcStubBuffer
*
This
,
struct
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IClassFactory_CreateInstance_Proxy
(
IClassFactory
*
This
,
IUnknown
*
pUnkOuter
,
REFIID
riid
,
void
**
ppvObject
);
HRESULT
__RPC_STUB
IClassFactory_CreateInstance_Stub
(
IClassFactory
*
This
,
REFIID
riid
,
IUnknown
**
ppvObject
);
HRESULT
CALLBACK
IClassFactory_RemoteLockServer_Proxy
(
IClassFactory
*
This
,
BOOL
fLock
);
void
__RPC_STUB
IClassFactory_RemoteLockServer_Stub
(
struct
IRpcStubBuffer
*
This
,
struct
IRpcChannelBuffer
*
pRpcChannelBuffer
,
PRPC_MESSAGE
pRpcMessage
,
DWORD
*
pdwStubPhase
);
HRESULT
CALLBACK
IClassFactory_LockServer_Proxy
(
IClassFactory
*
This
,
BOOL
fLock
);
HRESULT
__RPC_STUB
IClassFactory_LockServer_Stub
(
IClassFactory
*
This
,
BOOL
fLock
);
#ifdef __cplusplus
}
#endif
#endif
/* __WIDL_UNKNWN_H */
include/unknwn.idl
0 → 100644
View file @
0df7b24b
/*
*
Copyright
2002
Ove
Kaaven
*
*
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
.
,
59
Temple
Place
,
Suite
330
,
Boston
,
MA
02111
-
1307
USA
*/
import
"wtypes.idl"
;
/*
need
this
until
objidl
.
h
and
objbase
.
h
is
complete
*/
cpp_quote
(
"#define __WINE_INCLUDE_UNKNWN"
)
cpp_quote
(
"#include \"
wine
/
obj_base
.
h\"")
cpp_quote
(
"#undef __WINE_INCLUDE_UNKNWN"
)
/*
COM
vtable
compatibility
macros
for
g
++
*/
/*
Included
here
because
the
generated
header
needs
them
*/
cpp_quote
(
"#if defined(__cplusplus) && !defined(CINTERFACE)"
)
cpp_quote
(
" #ifdef ICOM_USE_COM_INTERFACE_ATTRIBUTE"
)
cpp_quote
(
" #define ICOM_COM_INTERFACE_ATTRIBUTE __attribute__((com_interface))"
)
cpp_quote
(
" #else"
)
cpp_quote
(
" #define ICOM_COM_INTERFACE_ATTRIBUTE"
)
cpp_quote
(
" #endif"
)
cpp_quote
(
"#else"
)
cpp_quote
(
" #ifdef ICOM_MSVTABLE_COMPAT"
)
cpp_quote
(
" #define ICOM_MSVTABLE_COMPAT_FIELDS \\"
)
cpp_quote
(
" long dummyRTTI1; \\"
)
cpp_quote
(
" long dummyRTTI2;"
)
cpp_quote
(
" #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 0,0,"
)
cpp_quote
(
" #else"
)
cpp_quote
(
" #define ICOM_MSVTABLE_COMPAT_FIELDS"
)
cpp_quote
(
" #define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE"
)
cpp_quote
(
" #endif"
)
cpp_quote
(
"#endif"
)
/*
Interfaces
*/
[
local
,
object
,
uuid
(
00000000
-
0000
-
0000
-
C000
-
000000000046
),
pointer_default
(
unique
)
]
interface
IUnknown
{
typedef
[
unique
]
IUnknown
*
LPUNKNOWN
;
HRESULT
QueryInterface
(
[
in
]
REFIID
riid
,
[
out
,
iid_is
(
riid
)
]
void
**
ppvObject
)
;
ULONG
AddRef
()
;
ULONG
Release
()
;
}
[
object
,
uuid
(
00000001
-
0000
-
0000
-
C000
-
000000000046
),
pointer_default
(
unique
)
]
interface
IClassFactory
:
IUnknown
{
typedef
[
unique
]
IClassFactory
*
LPCLASSFACTORY
;
[
local
]
HRESULT
CreateInstance
(
[
in
,
unique
]
IUnknown
*
pUnkOuter
,
[
in
]
REFIID
riid
,
[
out
,
iid_is
(
riid
)
]
void
**
ppvObject
)
;
[
call_as
(
CreateInstance
)
]
HRESULT
RemoteCreateInstance
(
[
in
]
REFIID
riid
,
[
out
,
iid_is
(
riid
)
]
IUnknown
**
ppvObject
)
;
[
local
]
HRESULT
LockServer
(
[
in
]
BOOL
fLock
)
;
[
call_as
(
LockServer
)
]
HRESULT
RemoteLockServer
(
[
in
]
BOOL
fLock
)
;
}
include/wine/obj_base.h
View file @
0df7b24b
...
...
@@ -299,12 +299,6 @@ extern "C" {
#define ICOM_CINTERFACE 1
#endif
#ifdef ICOM_USE_COM_INTERFACE_ATTRIBUTE
#define ICOM_COM_INTERFACE_ATTRIBUTE __attribute__((com_interface))
#else
#define ICOM_COM_INTERFACE_ATTRIBUTE
#endif
#ifndef ICOM_CINTERFACE
/* C++ interface */
...
...
@@ -549,16 +543,6 @@ extern "C" {
#define ICOM_VFIELD(iface) ICOM_VTABLE(iface)* lpVtbl
#define ICOM_VTBL(iface) (iface)->lpVtbl
#ifdef ICOM_MSVTABLE_COMPAT
#define ICOM_MSVTABLE_COMPAT_FIELDS \
long dummyRTTI1; \
long dummyRTTI2;
#define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE 0,0,
#else
#define ICOM_MSVTABLE_COMPAT_FIELDS
#define ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
#endif
/* ICOM_MSVTABLE_COMPAT */
#define ICOM_DEFINE(iface,ibase) \
typedef struct ICOM_VTABLE(iface) ICOM_VTABLE(iface); \
struct iface { \
...
...
@@ -616,60 +600,6 @@ extern "C" {
#define ICOM_CALL26(xfn, ptr,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) ICOM_VTBL(ptr)->xfn(ptr,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z)
/*****************************************************************************
* Predeclare the interfaces
*/
DEFINE_OLEGUID
(
IID_IClassFactory
,
0x00000001L
,
0
,
0
);
typedef
struct
IClassFactory
IClassFactory
,
*
LPCLASSFACTORY
;
DEFINE_OLEGUID
(
IID_IUnknown
,
0x00000000L
,
0
,
0
);
typedef
struct
IUnknown
IUnknown
,
*
LPUNKNOWN
;
/*****************************************************************************
* IUnknown interface
*/
#define ICOM_INTERFACE IUnknown
#define IUnknown_METHODS \
ICOM_METHOD2(HRESULT,QueryInterface,REFIID,riid, LPVOID*,ppvObj) \
ICOM_METHOD (ULONG,AddRef) \
ICOM_METHOD (ULONG,Release)
#define IUnknown_IMETHODS \
IUnknown_METHODS
ICOM_DEFINE1
(
IUnknown
)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IUnknown_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IUnknown_AddRef(p) ICOM_CALL (AddRef,p)
#define IUnknown_Release(p) ICOM_CALL (Release,p)
HRESULT
CALLBACK
IUnknown_QueryInterface_Proxy
(
IUnknown
*
This
,
REFIID
riid
,
LPVOID
*
ppvObj
);
ULONG
CALLBACK
IUnknown_AddRef_Proxy
(
IUnknown
*
This
);
ULONG
CALLBACK
IUnknown_Release_Proxy
(
IUnknown
*
This
);
/*****************************************************************************
* IClassFactory interface
*/
#define ICOM_INTERFACE IClassFactory
#define IClassFactory_METHODS \
ICOM_METHOD3(HRESULT,CreateInstance, LPUNKNOWN,pUnkOuter, REFIID,riid, LPVOID*,ppvObject) \
ICOM_METHOD1(HRESULT,LockServer, BOOL,fLock)
#define IClassFactory_IMETHODS \
IUnknown_IMETHODS \
IClassFactory_METHODS
ICOM_DEFINE
(
IClassFactory
,
IUnknown
)
#undef ICOM_INTERFACE
/*** IUnknown methods ***/
#define IClassFactory_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IClassFactory_AddRef(p) ICOM_CALL (AddRef,p)
#define IClassFactory_Release(p) ICOM_CALL (Release,p)
/*** IClassFactory methods ***/
#define IClassFactory_CreateInstance(p,a,b,c) ICOM_CALL3(CreateInstance,p,a,b,c)
#define IClassFactory_LockServer(p,a) ICOM_CALL1(LockServer,p,a)
#ifdef __cplusplus
}
/* extern "C" */
#endif
...
...
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