dcsimg
Results 1 to 6 of 6

Thread: Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

  1. #1

    Thread Starter
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    2,410

    Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

    I poked through it a bit and didn't see any unsupported types or pointer types, but thought someone might know for sure?

    Going to need it and would be great if it could just be referenced directly instead of me having to add it to my typelib and go through and change incompatibilities.

  2. #2
    Frenzied Member wqweto's Avatar
    Join Date
    May 2011
    Posts
    1,750

    Re: Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

    That would be a nice utility being able to check if a typelib is Automation/VB6 compatible.

    AFAIK MSXML *is* Automation compatible, otherwise it would be unusable from VBScript and/or ASP which one of the main reasons for its existence per se.

    cheers,
    </wqW>

  3. #3

    Thread Starter
    PowerPoster
    Join Date
    Jul 2010
    Location
    NYC
    Posts
    2,410

    Re: Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

    Ah if it's designed for VBScript then yeah that would mean complete compatibility. Good to know. A lot of system typelibs aren't, which is why there's rewrites of things like DirectShow and TaskManager in my typelib.

  4. #4
    Hyperactive Member
    Join Date
    Aug 2017
    Posts
    310

    Re: Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

    After decompiling Microsoft XML, v6.0 to its IDL source via OLE/COM Object Viewer and pasting it into Notepad++, the following 83 lines were found when searching for "unsigned":

    Code:
    Search "unsigned" (83 hits in 1 file)
      new 1 (83 hits)
    	Line 878:                         [in] unsigned short* pwchName, 
    	Line 881:                         [in] unsigned short* pwchName, 
    	Line 884:                         [in] unsigned short* pwchName, 
    	Line 887:                         [in] unsigned short* pwchName, 
    	Line 897:         HRESULT _stdcall getBaseURL([out, retval] unsigned short** ppwchBaseUrl);
    	Line 898:         HRESULT _stdcall putBaseURL([in] unsigned short* pwchBaseUrl);
    	Line 899:         HRESULT _stdcall getSecureBaseURL([out, retval] unsigned short** ppwchSecureBaseUrl);
    	Line 900:         HRESULT _stdcall putSecureBaseURL([in] unsigned short* pwchSecureBaseUrl);
    	Line 902:         HRESULT _stdcall parseURL([in] unsigned short* pwchUrl);
    	Line 913:                         [in] unsigned short* pwchPublicId, 
    	Line 914:                         [in] unsigned short* pwchSystemId, 
    	Line 929:                         [in] unsigned short* pwchPrefix, 
    	Line 931:                         [in] unsigned short* pwchUri, 
    	Line 934:                         [in] unsigned short* pwchPrefix, 
    	Line 937:                         [in] unsigned short* pwchNamespaceUri, 
    	Line 939:                         [in] unsigned short* pwchLocalName, 
    	Line 941:                         [in] unsigned short* pwchQName, 
    	Line 945:                         [in] unsigned short* pwchNamespaceUri, 
    	Line 947:                         [in] unsigned short* pwchLocalName, 
    	Line 949:                         [in] unsigned short* pwchQName, 
    	Line 952:                         [in] unsigned short* pwchChars, 
    	Line 955:                         [in] unsigned short* pwchChars, 
    	Line 958:                         [in] unsigned short* pwchTarget, 
    	Line 960:                         [in] unsigned short* pwchData, 
    	Line 963:                         [in] unsigned short* pwchName, 
    	Line 976:         HRESULT _stdcall getPublicId([out, retval] unsigned short** ppwchPublicId);
    	Line 977:         HRESULT _stdcall getSystemId([out, retval] unsigned short** ppwchSystemId);
    	Line 990:                         [out] unsigned short** ppwchUri, 
    	Line 994:                         [out] unsigned short** ppwchLocalName, 
    	Line 998:                         [out] unsigned short** ppwchQName, 
    	Line 1002:                         [out] unsigned short** ppwchUri, 
    	Line 1004:                         [out] unsigned short** ppwchLocalName, 
    	Line 1006:                         [out] unsigned short** ppwchQName, 
    	Line 1009:                         [in] unsigned short* pwchUri, 
    	Line 1011:                         [in] unsigned short* pwchLocalName, 
    	Line 1015:                         [in] unsigned short* pwchQName, 
    	Line 1020:                         [out] unsigned short** ppwchType, 
    	Line 1023:                         [in] unsigned short* pwchUri, 
    	Line 1025:                         [in] unsigned short* pwchLocalName, 
    	Line 1027:                         [out] unsigned short** ppwchType, 
    	Line 1030:                         [in] unsigned short* pwchQName, 
    	Line 1032:                         [out] unsigned short** ppwchType, 
    	Line 1036:                         [out] unsigned short** ppwchValue, 
    	Line 1039:                         [in] unsigned short* pwchUri, 
    	Line 1041:                         [in] unsigned short* pwchLocalName, 
    	Line 1043:                         [out] unsigned short** ppwchValue, 
    	Line 1046:                         [in] unsigned short* pwchQName, 
    	Line 1048:                         [out] unsigned short** ppwchValue, 
    	Line 1060:                         [in] unsigned short* pwchName, 
    	Line 1062:                         [in] unsigned short* pwchPublicId, 
    	Line 1064:                         [in] unsigned short* pwchSystemId, 
    	Line 1067:                         [in] unsigned short* pwchName, 
    	Line 1069:                         [in] unsigned short* pwchPublicId, 
    	Line 1071:                         [in] unsigned short* pwchSystemId, 
    	Line 1073:                         [in] unsigned short* pwchNotationName, 
    	Line 1086:                         [in] unsigned short* pwchErrorMessage, 
    	Line 1090:                         [in] unsigned short* pwchErrorMessage, 
    	Line 1094:                         [in] unsigned short* pwchErrorMessage, 
    	Line 1117:                         [in] unsigned short* pwchName, 
    	Line 1119:                         [in] unsigned short* pwchPublicId, 
    	Line 1121:                         [in] unsigned short* pwchSystemId, 
    	Line 1125:                         [in] unsigned short* pwchName, 
    	Line 1128:                         [in] unsigned short* pwchName, 
    	Line 1133:                         [in] unsigned short* pwchChars, 
    	Line 1145:                         [in] unsigned short* pwchName, 
    	Line 1147:                         [in] unsigned short* pwchModel, 
    	Line 1150:                         [in] unsigned short* pwchElementName, 
    	Line 1152:                         [in] unsigned short* pwchAttributeName, 
    	Line 1154:                         [in] unsigned short* pwchType, 
    	Line 1156:                         [in] unsigned short* pwchValueDefault, 
    	Line 1158:                         [in] unsigned short* pwchValue, 
    	Line 1161:                         [in] unsigned short* pwchName, 
    	Line 1163:                         [in] unsigned short* pwchValue, 
    	Line 1166:                         [in] unsigned short* pwchName, 
    	Line 1168:                         [in] unsigned short* pwchPublicId, 
    	Line 1170:                         [in] unsigned short* pwchSystemId, 
    	Line 2438:                         [in] unsigned short* prefix, 
    	Line 2439:                         [in] unsigned short* namespaceURI);
    	Line 2442:                         [in, out] unsigned short* pwchPrefix, 
    	Line 2445:                         [in] unsigned short* pwszNamespaceURI, 
    	Line 2447:                         [in, out] unsigned short* pwchPrefix, 
    	Line 2450:                         [in] unsigned short* pwchPrefix, 
    	Line 2452:                         [in, out] unsigned short* pwchUri,
    Here's one of the interfaces with VB6-hostile parameter data types:

    Code:
    [
      odl,
      uuid(A4F96ED0-F829-476E-81C0-CDC7BD2A0802),
      helpstring("ISAXXMLReader interface"),
      hidden
    ]
    interface ISAXXMLReader : IUnknown {
        HRESULT _stdcall getFeature(
                        [in] unsigned short* pwchName, 
                        [out, retval] VARIANT_BOOL* pvfValue);
        HRESULT _stdcall putFeature(
                        [in] unsigned short* pwchName, 
                        [in] VARIANT_BOOL vfValue);
        HRESULT _stdcall getProperty(
                        [in] unsigned short* pwchName, 
                        [out, retval] VARIANT* pvarValue);
        HRESULT _stdcall putProperty(
                        [in] unsigned short* pwchName, 
                        [in] VARIANT varValue);
        HRESULT _stdcall getEntityResolver([out, retval] ISAXEntityResolver** ppResolver);
        HRESULT _stdcall putEntityResolver([in] ISAXEntityResolver* pResolver);
        HRESULT _stdcall getContentHandler([out, retval] ISAXContentHandler** ppHandler);
        HRESULT _stdcall putContentHandler([in] ISAXContentHandler* pHandler);
        HRESULT _stdcall getDTDHandler([out, retval] ISAXDTDHandler** ppHandler);
        HRESULT _stdcall putDTDHandler([in] ISAXDTDHandler* pHandler);
        HRESULT _stdcall getErrorHandler([out, retval] ISAXErrorHandler** ppHandler);
        HRESULT _stdcall putErrorHandler([in] ISAXErrorHandler* pHandler);
        HRESULT _stdcall getBaseURL([out, retval] unsigned short** ppwchBaseUrl);
        HRESULT _stdcall putBaseURL([in] unsigned short* pwchBaseUrl);
        HRESULT _stdcall getSecureBaseURL([out, retval] unsigned short** ppwchSecureBaseUrl);
        HRESULT _stdcall putSecureBaseURL([in] unsigned short* pwchSecureBaseUrl);
        HRESULT _stdcall parse([in, optional] VARIANT varInput);
        HRESULT _stdcall parseURL([in] unsigned short* pwchUrl);
    };

  5. #5
    PowerPoster
    Join Date
    Feb 2006
    Posts
    20,865

    Re: Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

    In many cases we have IVBSAXxxx interfaces in parallel with corresponding hidden ISAXxxx interfaces.

    For the most part both SAX and DOM are fully functional for VB6 programs without playing games to work around unsupported types.

  6. #6
    Frenzied Member wqweto's Avatar
    Join Date
    May 2011
    Posts
    1,750

    Re: Is the MSXML 6.0 Typelib (in msxml6.dll) VB6-compatible?

    That's pretty weird inconsistence as using LPSTR instead of unsigned short* would have made the interface OLE Automation compatible.

    cheers,
    </wqw>

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Featured


Click Here to Expand Forum to Full Width