Commit Graph

162 Commits

Author SHA1 Message Date
Francois Gouget 6a6c85c6d8 Make Unicode const strings static so they are not copied to the stack
each time we enter the function.
2004-04-19 20:12:14 +00:00
Robert Shearman 92940e0c4f BSTR of length 0 is allowed. 2004-03-22 22:57:51 +00:00
Marcus Meissner 09c8cc97f7 Added more argument numbers for _invoke(). 2003-12-30 19:06:21 +00:00
Marcus Meissner 30ccb3bd22 Yet another useful hint for missing stdole32.tlb. 2003-12-15 19:47:51 +00:00
Andrew de Quincey eb4d6e079d - Implemented HELPDIR subkeys properly in RegisterTypeLib().
- Implemented UnRegisterTypeLib().
- Fixed various minor bugs.
2003-12-13 00:04:06 +00:00
Andrew de Quincey 8b773b125a Upwards traversal of inheritance tree didn't occur for dispatch
interfaces.
2003-12-10 00:38:17 +00:00
Jon Griffiths 4f0f1d9253 Improve/shrink variant dumping code. 2003-11-25 01:49:48 +00:00
Dmitry Timoshkov 1fa82e51c2 Apply same magic to LibAttr.lcid from MSFT to SLTG. 2003-11-18 00:02:25 +00:00
Jon Griffiths bb61fe35a2 Dump a few more known variant types.
Don't call DateToTM() - it's going away soon.
2003-11-14 20:59:46 +00:00
Marcus Meissner 49eaa0db2b Do not coerce arguments of ITypeLib::Invoke in-place, or we get
corrupted variants.
Handle V_ARRAY | something -> VT_SAFEARRAY, as this is a NOP.
2003-11-03 22:13:05 +00:00
Alexandre Julliard 81db03dd61 The imported typelib name must be converted to Unicode. 2003-10-16 19:09:41 +00:00
Daniel Marmier 0348649853 Fixed warnings with gcc option "-Wwrite-strings". 2003-10-06 21:03:32 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Mike Hearn 6e9f278602 Implemented a typelib loader cache. 2003-08-28 19:44:08 +00:00
Alexandre Julliard 864ca06832 winnls.h must not include winbase.h. 2003-08-20 18:22:31 +00:00
Robert Shearman 860a2714ae - Silence the FIXME about constructor/destructor since it is wrong for
99.9% of cases (if MS will ever use the feature at all)
- Added stubs for ITypeComp interface in ITypeLib
- Implementation of ITypeComp in ITypeInfo
2003-06-27 19:40:03 +00:00
Marcus Meissner 144b0d150b Handle VT_I2 <-> VT_USERDEFINED/TKIND_ENUM conversions too. 2003-05-15 22:58:17 +00:00
Dmitry Timoshkov 1eb2c05070 Remove redundant ITypeLib2_AddRef's. Makes
LoadTypeLib/ITypeLib2_Release work.
2003-05-13 22:15:26 +00:00
Francois Gouget f803e2a92d Fix miscellaneous spelling errors and typos. 2003-05-13 00:41:57 +00:00
Alexandre Julliard 150cd5a784 Avoid local WINAPI function pointers in _invoke. 2003-04-17 02:20:52 +00:00
Alexandre Julliard c2ebe1ff93 Removed uses of the non standard ICOM_VTBL macro. 2003-04-10 18:17:34 +00:00
Marcus Meissner 84213a37ff Handle VT_PTR->VT_VARIANT arguments of Invoke. 2003-03-04 02:14:10 +00:00
Mike Hearn ea957415b0 Check both pointers in GetContainingTypeLib. 2003-02-26 04:36:03 +00:00
Marcus Meissner 0df0304048 Print a large failure message if we try to load stdole32.tlb and
fail.
2003-01-21 19:29:33 +00:00
Marcus Meissner d5e60ea373 Convert VT_DISPATCH variants into VT_USERDEFINED/TKIND_DISPATCH and
TKIND_INTERFACE targets, Query IID_IDispatch if necessary.
2003-01-11 20:58:35 +00:00
Dimitrie O. Paun 297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Alexandre Julliard 52395b0eb9 Fixed some issues caused by the new oaidl.h. 2003-01-05 20:32:30 +00:00
Marcus Meissner 4beaa06e9d Process TKIND_ALIAS in SLTG typelibs, 0x14 in the tail is the
tdescAlias.vt entry.
Added a small handler for TKIND_DISPATCH in SLTG.
ITypeLib_Release can have a NULL pointer as ITypeInfo*.
Split out _copy_arg function for both DispCall and ITypeInfo_fnInvoke,
added some more functionality.
ITypeInfo_fnInvoke can handle VT_USERDEFINED variants.
2003-01-02 23:11:19 +00:00
Alberto Massari ea1ca9c705 Implemented DispCallFunc so that it works when calling event handlers
that have no return value.
2002-12-12 22:59:25 +00:00
Marcus Meissner 3b5e2d1a08 Split out 16bit code into typelib16.c. 2002-12-12 03:56:36 +00:00
Ove Kaaven 1f5315c80f Make sure that no files except unknwn.h include wine/obj_base.h
directly.
2002-12-05 20:33:07 +00:00
Alberto Massari 1a4f5cff4e ITypeInfo::Invoke now is able to invoke a function even when it is
provided with a byref argument.
2002-11-13 19:36:57 +00:00
Marcus Meissner dbebcffb6f Added partial implementation of ITypeInfo::GetDllEntry(). 2002-11-11 22:24:31 +00:00
Marcus Meissner 8e801e25f6 Silence one FIXME(). Implement ITypeInfo::GetDocumentation for
variable descriptions.
2002-11-11 19:54:04 +00:00
Marcus Meissner 1bd4bbb569 Draft implementation of DispCallFunc. 2002-11-08 18:51:28 +00:00
Alexandre Julliard 267ca68253 Fixed HANDLE<->HFILE conversions, since they will be different types
when handles are void*.
2002-07-31 17:20:00 +00:00
Gregg Mattinson ecdafc37a2 Fixed void* arithmetic. 2002-07-16 01:12:39 +00:00
Gregg Mattinson 6886467cb9 Fixes to allow big endian machines to load MSFT typelib files. 2002-07-10 23:07:59 +00:00
Jason Edmeades 5b6a9ff537 - VarAnd, VarCmp (Strings only), VarNot implemented.
- VarParseNumFromStr/VarNumFromParseNum handle negative currency
  numbers.
- More VarCmp support (Decimals and Dates).
- Date support for VB time only (0.0->1.0), corrected some date
  rounding and calculation errors around variant dates and the system
  time.
- Variant date support now round trips! (Date->Variant->Date) due to
  misuse of tm_mon (0..11 not 1..12).
- Better pre-1899 support for dates in the SYSTEMTIME format.
- VarBstrFromCy, VarCyFromStr implemented.
- VarFormat partial implementation (currency and date support).
- VarFormatFromTokens, VarTokenizeFormatString partial implementation
  as per w2k (dates only so far).
- Better debugging when dumping variants, and some additional trace
 points to help debugging.
- Fix to VarBstrCmp to handle null and empty string the same (as per
  w2k, different to msdn).
- Fix return from VarDateFromUdate.
- Correct definition of CY structure.
2002-06-20 23:07:55 +00:00
Marcus Meissner 30f9da4b58 ITypelib::Invoke: Handle different length arguments better, we also
return 1 VARIANT only.
2002-06-20 22:45:08 +00:00
Huw D M Davies 61fc6f8cd3 Add more magic to find the start of the nametable. 2002-06-10 23:01:34 +00:00
Marcus Meissner 238cdeab1b Added some debugoutput functions for TYPEATTR, IDLDESC, VARDESC.
Support more parameters in _invoke (needed for IDispatch::Invoke in
the marshaller).
2002-06-10 02:29:55 +00:00
Steven Edwards fb24f71e5b Porting fixes. 2002-06-04 00:50:11 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Andreas Mohr 841ce935d2 Removed obsolete email address. 2002-05-23 02:41:46 +00:00
Alexandre Julliard 9b6f433ebb Implemented strtolW/strtoulW in libwine_unicode and used it to replace
wcstol and friends.
2002-05-16 18:58:47 +00:00
Marcus Meissner 87ecfab4ec Small hack to make InstallShield v6 work better. 2002-05-06 20:12:32 +00:00
Alexandre Julliard b53f13093e Attempt at fixing MAX_PATH issues for mingw. 2002-05-01 18:13:18 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Marcus Meissner 0749fc2034 Implemented Local Server COM.
Implemented the Typelib based Marshaler.
2002-02-05 18:11:17 +00:00
Malte Starostik 4062cd924f Do not destroy ITypeLib held by ITypeInfo before the latter is freed. 2002-02-04 18:32:20 +00:00
Huw D M Davies eb16e1b055 Weird thing with lcid of library is that if sublang is neutral then we
return the primary lang else we return 0.
2002-01-29 17:05:11 +00:00
Dimitrie O. Paun 693cca5d4d Make FIXMEs more grep-able. 2002-01-29 03:12:19 +00:00
Marcus Meissner de46c22917 The \\<nr> magic in LoadTypeLibEx found directories, which was not
intended. Return error in that case.
2002-01-22 18:28:51 +00:00
Bill Medland 064972768d Fixed GetDocumentation a little. When called from RegisterTypeLib it
was leaving the Doc entry uninitialised, leading to page fault when
measuring it. Also ensure correct freeing of resources on failure.
2002-01-09 19:10:59 +00:00
Andreas Mohr 9cef2d0b1d - fix wrong hexadecimal GetLastError() output
- misc fixes
- changed my email address
2001-11-19 02:30:01 +00:00
Huw D M Davies c10d17dee9 Fixes stupid bug with typelib filenames. 2001-11-12 15:50:01 +00:00
Ove Kaaven 27e179794d Fixed bugs with propget methods with input arguments.
Improved variant debug dumps.
2001-10-14 16:07:49 +00:00
Francois Gouget 141039a54c Move the RT_XXX macros to winuser.h.
winuser.h: Add support for NOGDI.
winuser.h: Modify to allow compilation without wingdi.h.
2001-10-10 02:51:24 +00:00
Huw D M Davies e2a9e49349 Remove some unnecessary AddRef's. 2001-10-05 19:37:44 +00:00
Ove Kaaven f26d2522af The DISPPARAMS parameter array is a reverse-order array. 2001-10-04 18:11:11 +00:00
Ove Kaaven 77f8e5fef2 ITypeInfo::Invoke should also search inherited interfaces for the
method to invoke.
ITypeInfo::GetIDsOfNames needs to do case-insensitive string
compares.
2001-10-04 16:14:08 +00:00
Ove Kaaven e35f4ee144 Don't ignore DISPATCH_METHOD in ITypeInfo::Invoke. 2001-10-03 18:42:54 +00:00
Huw D M Davies 58aa0a12b9 Looks like the SLTG_ImplInfo struct isn't a fixed size. 2001-10-03 18:41:26 +00:00
Huw D M Davies 04f90ca78a Long nameless args in SLTG apparently get denoted by 0xfffe. 2001-10-02 17:25:55 +00:00
Huw D M Davies 899861d130 Better handling of typelibs loaded with a trailing resource number.
The logic for determining whether an SLTG typelib has a function param
as a 'short' or 'long' type has been 'refined'.
2001-09-26 23:05:35 +00:00
Ove Kaaven eebbeef944 Register typelib marshaling for OLE Automation-compatible interfaces. 2001-09-21 21:00:37 +00:00
Huw D M Davies 3db218a2a1 Load some useful TYPEATTR elements from v1 typelibs. 2001-09-10 23:13:28 +00:00
Huw D M Davies 0d969c7043 Add reader for v1 (SLTG) typelibs.
Fix a few problems with v2 (MSFT) typelibs.
LoadTypeLibEx should do a SearchPath to locate typelib.
2001-09-07 15:27:16 +00:00
Francois Gouget 9947b68c3e Add the decVal field to VARIANT.
Fix the VARIANT C layout, i.e. the union/struct names/nesting.
Encapsulate all accesses to VARIANT types with the V_VT and V_UNION
macros.
2001-08-21 17:03:10 +00:00
Marcus Meissner f7c69ede9e First (partial) implementation of ITypeInfo::Invoke.
Fixed buffer len passing to snprintf().
2001-08-06 17:46:18 +00:00
Malte Starostik b91c3ca7d1 Implemented RegisterTypeLib. 2001-08-03 18:13:24 +00:00
Patrik Stridvall 4b1574577d - Made sure that the files that contains the declarations
of the implementated functions are included.
- Corrected mismatching prototypes.
- Cleaned up the include section.
2001-07-23 23:50:18 +00:00
Patrik Stridvall 01d5e5b071 Documentation fixes. 2001-07-02 19:59:40 +00:00
Patrik Stridvall 3ca9823941 Documentation ordinal fixes. 2001-06-20 23:03:14 +00:00
Francois Gouget ee285b7ac8 Remove unnecessary single quoting of debugstr_xxx strings. 2001-05-11 20:03:40 +00:00
Francois Gouget e76218dd61 Add '\n' at the end of traces. 2001-05-09 17:31:31 +00:00
Andreas Mohr b6474aebd4 The for loop in ITypeLib2_fnFindName was wrong (extra ';'). 2001-03-05 19:32:50 +00:00
Francois Gouget 282f7270c1 Small 'typos in comments' fixes. 2001-02-28 05:31:02 +00:00
François Gouget da2b6a9f26 Fixed some HFILE vs. HANDLE mismatches.
If not used the last parameter of CreateFile must be 0, not -1.
2001-01-06 01:29:18 +00:00
Francois Jacques 11ed84009e - TLB_DoFuncs: code cleanup and elemdescFunc read correctly from TLB.
- TLB_LoadTypeLib: ref count problem.
- ITypeLib::GetTypeInfoOfGuid: safer implementation (pointer testing).
- ITypeInfo::GetRefTypeOfImplType: safer implementation (pointer testing).
- ITypeInfo2::GetDocumentationL return errors if SysAllocString failed.
- TLB loader functions now trace in "typelib" channel.
- Improved traces in AddRef/Release and improved dump_* functions for
  debugging.
2000-12-21 20:20:12 +00:00
Gerard Patel 53d198cc00 Misc fixes for QueryPathOfRegTypeLib, TLB_ReadTypeLib,
ITypeInfo_fnGetContainingTypeLib.
2000-12-19 03:37:44 +00:00
Alexandre Julliard f6168db690 Fixed some warnings. 2000-12-13 20:03:53 +00:00
Patrik Stridvall 2b3aa616e8 Added/modified documentation for function arguments. 2000-12-01 23:58:28 +00:00
Andreas Mohr cb45438be2 - added winver settings nt2k, win30 and win20 (yes, some rare programs need this)
and *document* it (win98 was not documented previously)
- OaBuildVersion: add value for NT4 SP6
- spelling fixes
2000-11-27 01:39:05 +00:00
Francois Jacques 7163957908 - support for arguments with referenced types
- imported type libraries
- dispinterfaces
- dual interfaces
- ref count problems
- memory leaks fixed
2000-11-25 23:51:30 +00:00
Francois Jacques e21864225a Updated the load process so that all typelibs (and not just the first
one, as it used to) stored in a DLL can be loaded.
2000-10-26 19:29:09 +00:00
Francois Jacques d1082dcaa1 Updated typelib loader. Typelib contents can be stored as multibyte
strings. However, they are always returned to the application as BSTR,
e.g. UNICODE strings. All strings are now stored as BSTR instead of
ASCII strings.
2000-10-25 21:24:53 +00:00
Francois Gouget 9046658f06 Fixed some prototypes. 2000-10-03 04:09:17 +00:00
Alexandre Julliard 83f52d11c1 Moved all Win16 definitions out of the standard Windows headers. 2000-09-26 22:20:14 +00:00
Alexandre Julliard 072dfb57e3 Removed inclusion of wine/winestring.h from winbase.h and added it to
the C files that need it.
2000-09-25 23:30:56 +00:00
Gerard Patel 9005713d39 Avoid infinite loop if QueryPathOfRegTypeLib is called with lcid=0. 2000-09-19 02:37:07 +00:00
Francois Jacques 133d70788a - removed unnecessary recursion
- upon query failure on main primary lcid and secondary lcid,
  attempts a query on system lcid (0)
2000-08-22 20:51:55 +00:00
Alexandre Julliard d586dc99be Replaced VERSION_* calls by exported API equivalents. 2000-08-14 14:35:01 +00:00
James Hatheway 044d251980 - Avoid null-pointer exceptions by testing listnodes validity before doing
any work with those.
- TLB_ReadTypeLib now retrieves the length of the TLB and passes it to
  the TLB constructor which initializes TLBContext::length to that
  value.
- For non-standard pointed types, td[3] is always 0. I observed that
  the type is stored at td[2]/8 and not td[3]/8.
- Null-pointer exception occurs when GetRefTypeOfImplType is called on a
  type with no inherited interfaces. If the implemented types linked list
  is empty, set pRefType as 0 and return S_OK.
2000-08-09 22:24:04 +00:00
Alexandre Julliard 691171b8e6 Small dll interfaces cleanups. 2000-08-08 20:49:16 +00:00
Marcus Meissner e5c1b9dded Added CreateTypeLib,LHashValOfNameSys stubs.
Check for correct struct magic before reading out of it.
2000-07-29 21:54:58 +00:00
Juergen Schmied e3b8640c77 - better loading of *.tlb files
- seperated code for loading tlb resource into memory from code for
  parsing the tlb resource.
2000-07-10 10:57:28 +00:00
Huw D M Davies 2cbda2ef92 Stub implementation of LHashValOfNameSysA.
Don't crash if we encounter a BSTR with length <= 0.
Fix typos in ITypeLib::GetDocumentation.
2000-07-09 12:17:52 +00:00
Huw D M Davies cd136c1256 Fix typo in ITypeLib::IsName. 2000-07-08 11:46:33 +00:00