Changeset 7926 for trunk/src/ole32/ifs.c
- Timestamp:
- Feb 15, 2002, 6:18:52 PM (24 years ago)
- File:
-
- 1 edited
-
trunk/src/ole32/ifs.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/ole32/ifs.c
r6711 r7926 5 5 */ 6 6 7 #include "config.h" 8 7 9 #include <ctype.h> 8 10 #include <stdlib.h> 9 11 #include <string.h> 10 12 #include <assert.h> 13 14 #include "ole2.h" 15 #include "windef.h" 11 16 #include "winerror.h" 12 #include "heap.h" 17 18 #include "wine/obj_base.h" 13 19 #include "wine/winbase16.h" 14 #include "wine/obj_base.h" 20 #include "ifs.h" 21 15 22 #include "debugtools.h" 16 17 #include "ole.h"18 #include "ifs.h"19 23 20 24 DEFAULT_DEBUG_CHANNEL(relay); … … 139 143 ICOM_THIS(IMalloc16Impl,iface); 140 144 TRACE("(%p)->Alloc(%ld)\n",This,cb); 141 return MapLS( HeapAlloc( GetProcessHeap(), HEAP_WINE_SEGPTR, cb ) );145 return MapLS( HeapAlloc( GetProcessHeap(), 0, cb ) ); 142 146 } 143 147 … … 145 149 * IMalloc16_Realloc [COMPOBJ.504] 146 150 */ 147 SEGPTR WINAPI IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb) { 148 ICOM_THIS(IMalloc16Impl,iface); 149 TRACE("(%p)->Realloc(%08lx,%ld)\n",This,pv,cb); 150 return MapLS( HeapReAlloc( GetProcessHeap(), HEAP_WINE_SEGPTR, MapSL(pv), cb ) ); 151 SEGPTR WINAPI IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb) 152 { 153 SEGPTR ret; 154 ICOM_THIS(IMalloc16Impl,iface); 155 TRACE("(%p)->Realloc(%08lx,%ld)\n",This,pv,cb); 156 ret = MapLS( HeapReAlloc( GetProcessHeap(), 0, MapSL(pv), cb ) ); 157 UnMapLS(pv); 158 return ret; 151 159 } 152 160 … … 154 162 * IMalloc16_Free [COMPOBJ.505] 155 163 */ 156 VOID WINAPI IMalloc16_fnFree(IMalloc16* iface,SEGPTR pv) { 157 ICOM_THIS(IMalloc16Impl,iface); 158 TRACE("(%p)->Free(%08lx)\n",This,pv); 159 HeapFree( GetProcessHeap(), HEAP_WINE_SEGPTR, MapSL(pv) ); 164 VOID WINAPI IMalloc16_fnFree(IMalloc16* iface,SEGPTR pv) 165 { 166 void *ptr = MapSL(pv); 167 ICOM_THIS(IMalloc16Impl,iface); 168 TRACE("(%p)->Free(%08lx)\n",This,pv); 169 UnMapLS(pv); 170 HeapFree( GetProcessHeap(), 0, ptr ); 160 171 } 161 172 … … 167 178 ICOM_CTHIS(IMalloc16Impl,iface); 168 179 TRACE("(%p)->GetSize(%08lx)\n",This,pv); 169 return HeapSize( GetProcessHeap(), HEAP_WINE_SEGPTR, MapSL(pv) );180 return HeapSize( GetProcessHeap(), 0, MapSL(pv) ); 170 181 } 171 182 … … 188 199 } 189 200 190 static ICOM_VTABLE(IMalloc16)* msegvt16 = NULL;191 192 201 /****************************************************************************** 193 202 * IMalloc16_Constructor [VTABLE] 194 203 */ 195 204 LPMALLOC16 196 IMalloc16_Constructor() { 197 IMalloc16Impl* This; 198 HMODULE16 hcomp = GetModuleHandle16("COMPOBJ"); 199 200 This = (IMalloc16Impl*)SEGPTR_NEW(IMalloc16Impl); 201 if (!msegvt16) { 202 msegvt16 = SEGPTR_NEW(ICOM_VTABLE(IMalloc16)); 203 204 #define VTENT(x) msegvt16->x = (void*)GetProcAddress16(hcomp,"IMalloc16_"#x);assert(msegvt16->x) 205 VTENT(QueryInterface); 206 VTENT(AddRef); 207 VTENT(Release); 208 VTENT(Alloc); 209 VTENT(Realloc); 210 VTENT(Free); 211 VTENT(GetSize); 212 VTENT(DidAlloc); 213 VTENT(HeapMinimize); 205 IMalloc16_Constructor() 206 { 207 static ICOM_VTABLE(IMalloc16) vt16; 208 static SEGPTR msegvt16; 209 IMalloc16Impl* This; 210 HMODULE16 hcomp = GetModuleHandle16("COMPOBJ"); 211 212 This = HeapAlloc( GetProcessHeap(), 0, sizeof(IMalloc16Impl) ); 213 if (!msegvt16) 214 { 215 #define VTENT(x) vt16.x = (void*)GetProcAddress16(hcomp,"IMalloc16_"#x);assert(vt16.x) 216 VTENT(QueryInterface); 217 VTENT(AddRef); 218 VTENT(Release); 219 VTENT(Alloc); 220 VTENT(Realloc); 221 VTENT(Free); 222 VTENT(GetSize); 223 VTENT(DidAlloc); 224 VTENT(HeapMinimize); 214 225 #undef VTENT 215 } 216 ICOM_VTBL(This) = (ICOM_VTABLE(IMalloc16)*)SEGPTR_GET(msegvt16); 217 This->ref = 1; 218 return (LPMALLOC16)SEGPTR_GET(This); 226 msegvt16 = MapLS( &vt16 ); 227 } 228 ICOM_VTBL(This) = (ICOM_VTABLE(IMalloc16)*)msegvt16; 229 This->ref = 1; 230 return (LPMALLOC16)MapLS( This ); 219 231 } 220 232 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
