Re: COM:MIDL problems
Hi Marco,
I can get you further and maybe some of what I show
you will help you get the rest of the way.
At the top of the file:
import "ocidl.idl";
There may be a much better import file to use. That's
one I needed before and it clears up a lot of issues
for your file but may be overkill, or may still be
missing something you need. I say that because to
continue "making progress", you can comment out lines
in the idl file, including all lines with 'single':
// HRESULT DefaultFontSize([out, retval]
single* pVal);
Two lines with 'custom' at the top:
// custom(DE77BA64-517C-11D1-A2DA-0000F8773CE9,
83951780),
// custom(DE77BA63-517C-11D1-A2DA-0000F8773CE9,
1004130005)
That gets you as far as:
....
;; Typedef LPSPECIFYPROPERTYPAGES as
LPSPECIFYPROPERTYPAGES
;; Struct tagCAUUID as TAG-CAUUID
;; Struct field cElems as C-ELEMS
;; Struct field pElems as P-ELEMS
;; Typedef CAUUID as CAUUID
;; Typedef LPCAUUID as LPCAUUID
;; Interface ISpecifyPropertyPages as
I-SPECIFY-PROPERTY-PAGES
;; method GetPages as GET-PAGES
;; Typedef LPPERSISTMEMORY as LPPERSISTMEMORY
**++++ Error between functions:
Unknown parent interface I-PERSIST.
; *** 1 error detected, no fasl file produced.
NIL
((NIL #<SIMPLE-ERROR 2067716C>) ((SUBFUNCTION (DEFUN
|COM Member : (I-ENUM-CONNECTIONS NEXT) wrapper|)
(SUBFUNCTION |COM Member : (I-ENUM-CONNECTIONS NEXT)
wrap...
I would search in the Visual C include directory for
I-PERSIST, or search in directories with IDL files, to
do additional imports, or determine if I really need
whatever is referring to I-PERSIST and remove it if I
don't need it.
I've also done copy/paste to manually do the 'include'
or 'import'. Lispworks seems to choke sometimes. I
have seen IDL files with a lot of syntax in them that
Lispworks didn't like but which wasn't related to what
I needed, so making my own copy and removing the
unneeded syntax was a workaround.
I hope this helps. I am very interested, if you make
further progress, to know what you learn. I hope you,
or anyone else working with COM in LWW, don't mind
posting a bit about tips, techniques, or even a
working sample or two.
Jeff
--- Marco Antoniotti <marcoxa@cs.nyu.edu> wrote:
> Hi
>
> I am trying to compile the an IDL file for the Adobe
> SVG Viewer (the
> file is attached, I found it on the net at
> http://www.svg.org/wiki/index.php/AsvIDL)
>
> However I get the following error:
>
> > CL-USER 9 > (midl "ASVGViewer.idl" :depth 1)
> > ;;; Processing ASVGViewer.idl
> >
> > Error:
> [z:\lang\cl\ASVGViewerLW\ASVGViewer.idl:44]:
> Unexpected symbol "IDispatch"
> > Skipping rest of statement.
> >
> > **++++ Error between functions:
> > :ERROR is not of type CONS.
> > ; *** 1 error detected, no fasl file produced.
> > NIL
> > ((NIL #<TYPE-ERROR 205EA1A4>))
> > T
>
> This is for LWW 4.2.7.
>
> Does anybody have an idea about what is going wrong?
>
> Thanks
>
> --
> Marco Antoniotti
> > // typelib filename: NPSVG3.dll
>
> [
> uuid(8415B62C-3C1B-416E-B5D7-40D983A9FA50),
> version(3.0),
> helpstring("SVGActiveX 3.0 Type Library"),
> custom(DE77BA64-517C-11D1-A2DA-0000F8773CE9,
> 83951780),
> custom(DE77BA63-517C-11D1-A2DA-0000F8773CE9,
> 1004130005)
>
> ]
> library SVGACTIVEXLib
> {
> // TLib : // TLib : OLE Automation :
> {00020430-0000-0000-C000-000000000046}
> importlib("Stdole2.tlb");
>
> // Forward declare all types defined in this
> typelib
> dispinterface _ISVGControlEvents;
> interface ISVGControl;
>
> [
> uuid(BD719F6D-BC21-4435-9BA1-AFD2F73E22B2),
> helpstring("_ISVGControlEvents Interface")
> ]
> dispinterface _ISVGControlEvents {
> properties:
> methods:
> };
>
> [
> uuid(377B5106-3B4E-4A2D-8520-8767590CAC86),
> helpstring("SVGCtl Class")
> ]
> coclass SVGCtl {
> [default] interface ISVGControl;
> };
>
> [
> odl,
> uuid(41066AF3-53A3-4C67-83AC-14688B13B31E),
> helpstring("ISVGControl Interface"),
> dual,
> oleautomation
> ]
> interface ISVGControl : IDispatch {
> [id(0x00000014), propget,
> helpstring("property SRC")]
> HRESULT SRC([out, retval] BSTR* pVal);
> [id(0x00000014), propput,
> helpstring("property SRC")]
> HRESULT SRC([in] BSTR pVal);
> [id(0x60020002), helpstring("gets the src")]
> HRESULT getSrc([out, retval] BSTR* pVal);
> [id(0x60020003), helpstring("sets the src")]
> HRESULT setSrc([in] BSTR newVal);
> [id(0xfffffdf3), propget, helpstring("Stock
> property ReadyState")]
> HRESULT ReadyState([out, retval] long*
> pnReadyState);
> [id(0x00000065), helpstring("method
> reload")]
> HRESULT reload();
> [id(0x00000002), propget,
> helpstring("property DefaultFontFamily")]
> HRESULT DefaultFontFamily([out, retval]
> BSTR* pVal);
> [id(0x00000002), propput,
> helpstring("property DefaultFontFamily")]
> HRESULT DefaultFontFamily([in] BSTR pVal);
> [id(0x60020008),
> helpstring("getDefaultFontFamily")]
> HRESULT getDefaultFontFamily([out, retval]
> BSTR* pVal);
> [id(0x60020009),
> helpstring("setDefaultFontFamily")]
> HRESULT setDefaultFontFamily([in] BSTR
> newVal);
> [id(0x00000003), propget,
> helpstring("property DefaultFontSize")]
> HRESULT DefaultFontSize([out, retval]
> single* pVal);
> [id(0x00000003), propput,
> helpstring("property DefaultFontSize")]
> HRESULT DefaultFontSize([in] single pVal);
> [id(0x6002000c),
> helpstring("getDefaultFontSize")]
> HRESULT getDefaultFontSize([out, retval]
> single* pVal);
> [id(0x6002000d),
> helpstring("setDefaultFontSize")]
> HRESULT setDefaultFontSize([in] single
> newVal);
> [id(0x00000004), propget,
> helpstring("property DefaultAntialias")]
> HRESULT DefaultAntialias([out, retval] long*
> pVal);
> [id(0x00000004), propput,
> helpstring("property DefaultAntialias")]
> HRESULT DefaultAntialias([in] long pVal);
> [id(0x60020010),
> helpstring("getDefaultAntialias")]
> HRESULT getDefaultAntialias([out, retval]
> long* pVal);
> [id(0x60020011),
> helpstring("setDefaultAntialias")]
> HRESULT setDefaultAntialias([in] long
> newVal);
> [id(0x00000012), propget,
> helpstring("property FULLSCREEN")]
> HRESULT FULLSCREEN([out, retval] BSTR*
> pVal);
> [id(0x00000012), propput,
> helpstring("property FULLSCREEN")]
> HRESULT FULLSCREEN([in] BSTR pVal);
> [id(0x00000013), propget,
> helpstring("property USE_SVGZ")]
> HRESULT USE_SVGZ([out, retval] BSTR* pVal);
> [id(0x00000013), propput,
> helpstring("property USE_SVGZ")]
> HRESULT USE_SVGZ([in] BSTR pVal);
> [id(0x00000015), propget,
> helpstring("property WMODE")]
> HRESULT WMODE([out, retval] BSTR* pVal);
> [id(0x00000015), propput,
> helpstring("property WMODE")]
> HRESULT WMODE([in] BSTR pVal);
> [id(0x00000017), propget,
> helpstring("property INTERNALID")]
> HRESULT INTERNALID([out, retval] BSTR*
> pVal);
> [id(0x00000017), propput,
> helpstring("property INTERNALID")]
> HRESULT INTERNALID([in] BSTR pVal);
> [id(0x00000016), propget,
> helpstring("property window")]
> HRESULT window([out, retval] IDispatch**
> pVal);
> [id(0x0000006d), helpstring("getWindow")]
> HRESULT getWindow([out, retval] IDispatch**
> pVal);
> [id(0x0000006b), helpstring("method
> getSVGDocument")]
> HRESULT getSVGDocument([out, retval]
> IDispatch** ppSVGDocument);
> [id(0x0000006a), helpstring("method
> getSVGViewerVersion")]
> HRESULT getSVGViewerVersion([out, retval]
> BSTR* pVersion);
> [id(0x0000006c), helpstring("method
> disableAutoUpdate")]
> HRESULT disableAutoUpdate();
> };
>
> [
> uuid(78156A80-C6A1-4BBF-8E6A-3CD390EEB4E2),
> helpstring("SVG Behavior Factory Class")
> ]
> coclass SVGBehaviorFactory {
> [default] interface IDispatch;
> };
>
> [
> uuid(ABD2F8EA-F1D9-4704-BDC3-A07741F967A2),
> helpstring("SVG Scriptable Renderer Class")
> ]
> coclass SVGRenderer {
> [default] interface IDispatch;
> };
> };
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com