4 * Copyright 1997 Marcus Meissner
20 #include "winversion.h"
22 /****************************************************************************
23 * QueryPathOfRegTypeLib16 [TYPELIB.14]
25 * the path is "Classes\Typelib\<guid>\<major>.<minor>\<lcid>\win16\"
30 QueryPathOfRegTypeLib16(
31 REFGUID guid
, /* [in] referenced guid */
32 WORD wMaj
, /* [in] major version */
33 WORD wMin
, /* [in] minor version */
34 LCID lcid
, /* [in] locale id */
35 LPBSTR16 path
/* [out] path of typelib */
38 char typelibkey
[100],pathname
[260];
42 WINE_StringFromCLSID(guid
,xguid
);
43 sprintf(typelibkey
,"SOFTWARE\\Classes\\Typelib\\%s\\%d.%d\\%ld\\win16",
44 xguid
,wMaj
,wMin
,lcid
&0xff
47 sprintf(xguid
,"<guid 0x%08lx>",(DWORD
)guid
);
48 FIXME(ole
,"(%s,%d,%d,0x%04lx,%p),can't handle non-string guids.\n",xguid
,wMaj
,wMin
,(DWORD
)lcid
,path
);
51 plen
= sizeof(pathname
);
52 if (RegQueryValue16(HKEY_LOCAL_MACHINE
,typelibkey
,pathname
,&plen
)) {
53 FIXME(ole
,"key %s not found\n",typelibkey
);
56 *path
= SysAllocString16(pathname
);
60 /****************************************************************************
61 * QueryPathOfRegTypeLib32 [OLEAUT32.164]
66 QueryPathOfRegTypeLib32(
67 REFGUID guid
, /* [in] referenced guid */
68 WORD wMaj
, /* [in] major version */
69 WORD wMin
, /* [in] minor version */
70 LCID lcid
, /* [in] locale id */
71 LPBSTR32 path
/* [out] path of typelib */
74 char typelibkey
[100],pathname
[260];
79 WINE_StringFromCLSID(guid
,xguid
);
80 sprintf(typelibkey
,"SOFTWARE\\Classes\\Typelib\\%s\\%d.%d\\%ld\\win32",
81 xguid
,wMaj
,wMin
,lcid
&0xff
84 sprintf(xguid
,"<guid 0x%08lx>",(DWORD
)guid
);
85 FIXME(ole
,"(%s,%d,%d,0x%04lx,%p),stub!\n",xguid
,wMaj
,wMin
,(DWORD
)lcid
,path
);
88 plen
= sizeof(pathname
);
89 if (RegQueryValue16(HKEY_LOCAL_MACHINE
,typelibkey
,pathname
,&plen
)) {
90 FIXME(ole
,"key %s not found\n",typelibkey
);
93 *path
= HEAP_strdupAtoW(GetProcessHeap(),0,pathname
);
97 /******************************************************************************
98 * LoadTypeLib [TYPELIB.3] Loads and registers a type library
100 * Docs: OLECHAR FAR* szFile
101 * Docs: iTypeLib FAR* FAR* pptLib
107 HRESULT WINAPI
LoadTypeLib(
108 void *szFile
, /* [in] Name of file to load from */
109 void * *pptLib
) /* [out] Pointer to pointer to loaded type library */
111 FIXME(ole
, "(%s,%p): stub\n",debugstr_a(szFile
),pptLib
);
115 /******************************************************************************
116 * LoadTypeLib32 [OLEAUT32.161]
117 * Loads and registers a type library
119 * Docs: OLECHAR FAR* szFile
120 * Docs: iTypeLib FAR* FAR* pptLib
126 HRESULT WINAPI
LoadTypeLib32(
127 void *szFile
, /* [in] Name of file to load from */
128 void * *pptLib
) /* [out] Pointer to pointer to loaded type library */
130 FIXME(ole
, "(%s,%p): stub\n",szFile
,pptLib
);
131 (long *)pptLib
=0x123;
132 return S_OK
; /* fixme: pretend everything is OK*/
135 /******************************************************************************
136 * RegisterTypeLib32 [OLEAUT32.163]
137 * Adds information about a type library to the System Registry
139 * Docs: ITypeLib FAR * ptlib
140 * Docs: OLECHAR FAR* szFullPath
141 * Docs: OLECHAR FAR* szHelpDir
147 HRESULT WINAPI
RegisterTypeLib32(
148 ITypeLib
* ptlib
, /*[in] Pointer to the library*/
149 OLECHAR
* szFullPath
, /*[in] full Path of the library*/
150 OLECHAR
* szHelpDir
) /*[in] dir to the helpfile for the library, may be NULL*/
151 { FIXME(ole
, "(%p,%s,%s): stub\n",ptlib
, szFullPath
,szHelpDir
);
152 return S_OK
; /* FIXME: pretend everything is OK */
155 /****************************************************************************
156 * OABuildVersion (TYPELIB.15)
160 DWORD WINAPI
OABuildVersion()
162 WINDOWS_VERSION ver
= VERSION_GetVersion();
166 return MAKELONG(0xbd0, 0xa); /* Win95A */
168 return MAKELONG(0xbd3, 0x3); /* WfW 3.11 */
170 FIXME(ole
, "Version value not known yet. Please investigate it !");
171 return MAKELONG(0xbd0, 0xa); /* return Win95A for now */