|
From: Slava P. <sl...@ba...> - 2001-05-22 11:43:49
|
> I see several tasks that we need to solve to successfully code the
project:
>
> 1) typelibrary generation is based on Far headers. I did convertion from
.H
> to .IDL manually and used 1702 headers. We can write perl script to
> automate the process. Also some constants are taken from "winuser.h" and
> "winnt.h"
>
> 2) We can wrap all dispatch method implementations in custom file format.
> Consider AutoGen toolkit for unix systems. I thought we could do C macros
> wrappers but it might not solve all problems. E.g.:
>
> GET(FileName)
> EditorInfo ei;
> if (!g_Info.EditorControl(ECTL_GETINFO, &ei))
> return E_FAIL;
> *pRetVal = SysAllocString(CHAR_TO_OLE(ei.FileName));
>
> expands to
>
> STDMETHODIMP CEditor::get_FileName(BSTR *pRetVal)
> {
> PTR(pRetVal);
> EditorInfo ei;
> if (!g_Info.EditorControl(ECTL_GETINFO, &ei))
> return E_FAIL;
> *Val = SysAllocString(CHAR_TO_OLE(ei.FileName));
> return S_OK;
> };
>
> The file format is negotiable. We do our own precompiler!
> This prevents us from dealing with IDispatch and other interfaces
> implementation routine.
>
> 3) Error handling is implemented ugly. No strategy. There is no useful
> logging in debug build. ISupportErrorInfo is not implemented - we need
this
> feature to report detailed descriptions of errors to script (appears in
VBS
> as "Err" object).
>
> 4) The compile time and run-time script errors can be and must be
> distinguished - but they do not. E.g. compile error results in dialog to
> allow user edit the script. Run-time error additinally may offer
> "ignore"/"ignore all" option.
>
> 5) Why the resulting image is so big? (even with startup code)
|