:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / lib / ole32 / Misc.c
1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         ReactOS system libraries
4  * FILE:            lib\ole32\Misc.c
5  * PURPOSE:         Ole32.dll helper functions
6  * PROGRAMMER:      jurgen van gael [jurgen.vangael@student.kuleuven.ac.be]
7  * UPDATE HISTORY:
8  *                  Created 14/05/2001
9  */
10 /********************************************************************
11
12
13 This library is free software; you can redistribute it and/or
14 modify it under the terms of the GNU Library General Public License as
15 published by the Free Software Foundation; either version 2 of the
16 License, or (at your option) any later version.
17
18 This library is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 Library General Public License for more details.
22
23 You should have received a copy of the GNU Library General Public
24 License along with this library; see the file COPYING.LIB.  If
25 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
26 Cambridge, MA 02139, USA.
27
28
29 ********************************************************************/
30 #include <ole32/ole32.h>
31
32 #if 0
33
34 WINOLEAPI PropVariantClear(PROPVARIANT *pvar){return S_OK;}
35 WINOLEAPI FreePropVariantArray(
36   ULONG cVariants,     //Count of elements in the structure
37   PROPVARIANT *rgvars  //Pointer to the PROPVARIANT structure
38 ){return S_OK;}
39
40 WINOLEAPI PropVariantCopy(PROPVARIANT* pvarDest, const PROPVARIANT* pvarSrc){return S_OK;}
41
42 WINOLEAPI CreateDataAdviseHolder(OUT LPDATAADVISEHOLDER FAR* ppDAHolder)
43 {
44         return S_OK;
45 }
46
47 WINOLEAPI CreateDataCache(IN LPUNKNOWN pUnkOuter, IN REFCLSID rclsid,
48                                         IN REFIID iid, OUT LPVOID FAR* ppv)
49 {
50         return S_OK;
51 }
52
53 WINOLEAPI StringFromCLSID(IN REFCLSID rclsid, OUT LPOLESTR FAR* lplpsz)
54 {
55         return S_OK;
56 }
57
58 WINOLEAPI CLSIDFromString(IN LPOLESTR lpsz, OUT LPCLSID pclsid)
59 {
60     return E_FAIL;
61 }
62
63 WINOLEAPI StringFromIID(IN REFIID rclsid, OUT LPOLESTR FAR* lplpsz)
64 {
65         return S_OK;
66 }
67
68 WINOLEAPI IIDFromString(IN LPOLESTR lpsz, OUT LPIID lpiid)
69 {
70         return S_OK;
71 }
72
73 WINOLEAPI_(BOOL) CoIsOle1Class(IN REFCLSID rclsid)
74 {
75         return S_OK;
76 }
77
78 WINOLEAPI ProgIDFromCLSID (IN REFCLSID clsid, OUT LPOLESTR FAR* lplpszProgID)
79 {
80         return S_OK;
81 }
82
83 WINOLEAPI CLSIDFromProgID (IN LPCOLESTR lpszProgID, OUT LPCLSID lpclsid)
84 {
85         return S_OK;
86 }
87
88 WINOLEAPI CLSIDFromProgIDEx (IN LPCOLESTR lpszProgID, OUT LPCLSID lpclsid)
89 {
90         return S_OK;
91 }
92
93 WINOLEAPI_(int) StringFromGUID2(IN REFGUID rguid, OUT LPOLESTR lpsz, IN int cchMax)
94 {
95         return S_OK;
96 }
97
98 #endif
99
100 /******************************************************************************
101  *              IsValidInterface        [OLE32.78]
102  *
103  * RETURNS
104  *  True, if the passed pointer is a valid interface
105  */
106 BOOL WINAPI IsValidInterface(
107         LPUNKNOWN punk  /* [in] interface to be tested */
108 ) {
109         return !(
110                 IsBadReadPtr(punk,4)                                    ||
111                 IsBadReadPtr(ICOM_VTBL(punk),4)                         ||
112                 IsBadReadPtr(ICOM_VTBL(punk)->QueryInterface,9) ||
113                 IsBadCodePtr((FARPROC)ICOM_VTBL(punk)->QueryInterface)
114         );
115 }