こんばんは。
 Ver. 1.5.2.1(2005-02-04)の CWSH.cpp をベースに変更し、
Win95(+IE5.5), WinMe(+IE5.5), WinXP(+IE6)でMsgBoxとInputBox
のダイアログが表示される事を確認しました。
 (>>dev:3482 の中身が気になりますが…)
diff --dos -u1 CWSH_bef.cpp CWSH_aft.cpp > CWSH.diff
--- CWSH_bef.cpp	Mon Jan 31 01:27:52 2005
+++ CWSH_aft.cpp	Mon Apr 18 18:00:00 2005
@@ -181,5 +181,6 @@
 
-//IActiveScriptSite
+//	Apr. 18, 2005 FILE IActiveScriptSiteWindow実装
+//IActiveScriptSite, IActiveScriptSiteWindow
 
-class CWSHSite: public ImplementsIUnknown<IActiveScriptSite>
+class CWSHSite: public IActiveScriptSite, public IActiveScriptSiteWindow
 {
@@ -188,4 +189,5 @@
 	ITypeInfo *m_TypeInfo;
+	ULONG m_RefCount;
 public:
-	CWSHSite(CWSHClient *AClient): ImplementsIUnknown<IActiveScriptSite>(), m_Client(AClient) 
+	CWSHSite(CWSHClient *AClient): m_RefCount(0), m_Client(AClient)
 	{
@@ -193,2 +195,30 @@
 
+	virtual ULONG _stdcall AddRef() {
+		return ++m_RefCount;
+	}
+
+	virtual ULONG _stdcall Release() {
+		if(--m_RefCount == 0)
+		{
+			delete this;
+			return 0;
+		}
+		return m_RefCount;
+	}
+
+	virtual HRESULT STDMETHODCALLTYPE QueryInterface(
+	    /* [in] */ REFIID iid,
+	    /* [out] */ void ** ppvObject)
+	{
+		*ppvObject = NULL;
+
+		if(iid == IID_IActiveScriptSiteWindow){
+			*ppvObject = static_cast<IActiveScriptSiteWindow*>(this);
+			++m_RefCount;
+			return S_OK;
+		}
+
+		return E_NOTIMPL;
+	}
+
 	virtual HRESULT STDMETHODCALLTYPE GetLCID( 
@@ -295,2 +325,16 @@
 		return S_OK; 
+	};
+
+	//	Apr. 18, 2005 FILE IActiveScriptSiteWindow実装
+	virtual HRESULT __stdcall GetWindow(
+	    /* [out] */ HWND *phwnd)
+	{
+		*phwnd = ((CEditView*) m_Client->m_Data)->m_pcEditDoc->m_hWnd;
+		return S_OK;
+	}
+
+	virtual HRESULT __stdcall EnableModeless(
+	    /* [in] */ BOOL fEnable)
+	{
+		return S_OK;
 	};
 今回の変更で、特に以下の点が気になっています。
・GetWindow()でのウィンドウハンドルの取得方法
 (モーダルにこだわらなければ、NULLや::GetDesktopWindow()でも良い様ですが)
・Visual C++ 6.0以外でもコンパイルや実行が可能かどうか
 (特にIActiveScriptSiteWindow)
・ImplementsIUnknownを使わない事(>>dev:3347)による、想定外の動作が無いかどうか
 上記の点、ご検証いただけますでしょうか。
以上、よろしくお願いいたします。