わたなべです.

Masaki Suketa <CQN02273 / nifty.ne.jp> writes:

:> 2000 年以降はもうバイナリを作るつもりもないです.
:> #だめ?
:
:これは,Windows を使う気もないから,バイナリを作る気(作る必要)も
:ないということなんでしょうか?  仕方がないですね.

全く使わないことはないです. 現に雑誌についてきた
Windows 2000 RC2 をインストールして Meadow 1.10 上の cmail
でこのメールも書いているわけだし.
ってなんかものすごい矛盾を感じるなあ.
うんざりなのは Win95/98 なのかもしれない.

それより cygwin 版を出すのをやめれば mswin32 版のバイナリが
出てくるんじゃないかなという期待のほうが大きかったりして.

:Ruby 本体はコンパイルできるんですけど,Win32OLE がコンパイル
:できません.Win32OLE を cygwin 版でコンパイルする方法を伝授
:していただけませんか? 

以前にも紹介した
  http://www.acc.umu.se/~anorland/gnu-win32/w32api-0.1.5.tar.gz
を使ってます. lcc-win32 を参考にこんな感じのパッチをあてて.
でも 0.0.4 までで 0.0.5 以降は試してません.

--- include/oaidl.h.orig Tue Mar 09 01:44:30 1999 +++ include/oaidl.h Sun Dec 12 22:16:54 1999 @@ -378,4 +378,52 @@ STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID) PURE; - STDMETHOD(Invoked)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; + STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE; }; + +#define DISPID_UNKNOWN (-1) +#define DISPID_VALUE 0 +#define DISPID_PROPERTYPUT (-3) +#define DISPID_NEWENUM (-4) +#define DISPID_EVALUATE (-5) +#define DISPID_CONSTRUCTOR (-6) +#define DISPID_DESTRUCTOR (-7) +#define DISPID_COLLECT (-8) +extern const IID IID_IDispatch; + +#ifndef __IEnumVARIANT_FWD_DEFINED__ +#define __IEnumVARIANT_FWD_DEFINED__ +typedef interface IEnumVARIANT IEnumVARIANT; +#endif + +#ifndef __IEnumVARIANT_INTERFACE_DEFINED__ +#define __IEnumVARIANT_INTERFACE_DEFINED__ +typedef IEnumVARIANT *LPENUMVARIANT; +extern const IID IID_IEnumVARIANT; +typedef struct IEnumVARIANTVtbl { + BEGIN_INTERFACE + HRESULT(STDMETHODCALLTYPE * QueryInterface)(IEnumVARIANT *,REFIID,void **); + ULONG(STDMETHODCALLTYPE * AddRef)(IEnumVARIANT *); + ULONG(STDMETHODCALLTYPE * Release)(IEnumVARIANT *); + HRESULT(STDMETHODCALLTYPE * Next)(IEnumVARIANT *,ULONG,VARIANT *,ULONG *); + HRESULT(STDMETHODCALLTYPE * Skip)(IEnumVARIANT *,ULONG); + HRESULT(STDMETHODCALLTYPE * Reset)(IEnumVARIANT *); + HRESULT(STDMETHODCALLTYPE * Clone)(IEnumVARIANT *,IEnumVARIANT **); + END_INTERFACE +} IEnumVARIANTVtbl; +interface IEnumVARIANT { CONST_VTBL struct IEnumVARIANTVtbl *lpVtbl; }; +#define IEnumVARIANT_QueryInterface(A,B,C) (A)->lpVtbl->QueryInterface(A,B,C) +#define IEnumVARIANT_AddRef(A) (A)->lpVtbl->AddRef(A) +#define IEnumVARIANT_Release(A) (A)->lpVtbl->Release(A) +#define IEnumVARIANT_Next(A,B,C,D) (A)->lpVtbl->Next(A,B,C,D) +#define IEnumVARIANT_Skip(A,B) (A)->lpVtbl->Skip(A,B) +#define IEnumVARIANT_Reset(A) (A)->lpVtbl->Reset(A) +#define IEnumVARIANT_Clone(A,B) (A)->lpVtbl->Clone(A,B) +HRESULT STDMETHODCALLTYPE IEnumVARIANT_RemoteNext_Proxy(IEnumVARIANT *,ULONG,VARIANT *,ULONG *); +void _stdcall IEnumVARIANT_RemoteNext_Stub(IRpcStubBuffer *,IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *); +HRESULT STDMETHODCALLTYPE IEnumVARIANT_Skip_Proxy(IEnumVARIANT *,ULONG); +void _stdcall IEnumVARIANT_Skip_Stub(IRpcStubBuffer *,IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *); +HRESULT STDMETHODCALLTYPE IEnumVARIANT_Reset_Proxy(IEnumVARIANT *); +void _stdcall IEnumVARIANT_Reset_Stub(IRpcStubBuffer *,IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *); +HRESULT STDMETHODCALLTYPE IEnumVARIANT_Clone_Proxy(IEnumVARIANT *,IEnumVARIANT **); +void _stdcall IEnumVARIANT_Clone_Stub(IRpcStubBuffer *,IRpcChannelBuffer *,PRPC_MESSAGE,DWORD *); +#endif --- include/oleauto.h.orig Tue Mar 09 01:44:30 1999 +++ include/oleauto.h Sun Dec 12 22:16:54 1999 @@ -30,3 +30,3 @@ #else -#define V_BOOL(X) V_UNION(X,bool) +#define V_BOOL(X) V_UNION(X,boolVal) #endif