Commit 140e7222 authored by Alexandre Julliard's avatar Alexandre Julliard

Removed more code at Hidenori's request.

parent ac3a9a32
......@@ -3,9 +3,4 @@ type win32
import ntdll.dll
debug_channels (avicap32)
@ stdcall capCreateCaptureWindowA(str long long long long long long long) capCreateCaptureWindowA
@ stdcall capCreateCaptureWindowW(wstr long long long long long long long) capCreateCaptureWindowW
@ stdcall capGetDriverDescriptionA(long ptr long ptr long) capGetDriverDescriptionA
@ stdcall capGetDriverDescriptionW(long ptr long ptr long) capGetDriverDescriptionW
debug_channels ()
/*
* Copyright (C) Hidenori TAKESHIMA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* FIXME - stub
*/
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "vfw.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(avicap32);
/***********************************************************************
*
* capCreateCaptureWindowA (AVICAP32.@)
*
*/
HWND WINAPI capCreateCaptureWindowA( LPCSTR pszTitle, DWORD dwStyle, int x, int y, int width, int height, HWND hwndParent, int nID )
{
FIXME( "(%s,%lx,%d,%d,%d,%d,%x,%d)\n",debugstr_a(pszTitle),dwStyle,x,y,width,height,hwndParent,nID );
return (HWND)NULL;
}
/***********************************************************************
*
* capCreateCaptureWindowW (AVICAP32.@)
*
*/
HWND WINAPI capCreateCaptureWindowW( LPCWSTR pwszTitle, DWORD dwStyle, int x, int y, int width, int height, HWND hwndParent, int nID )
{
FIXME( "(%s,%lx,%d,%d,%d,%d,%x,%d)\n",debugstr_w(pwszTitle),dwStyle,x,y,width,height,hwndParent,nID );
return (HWND)NULL;
}
/***********************************************************************
*
* capGetDriverDescriptionA (AVICAP32.@)
*
*/
BOOL WINAPI capGetDriverDescriptionA( UINT uDriverIndex, LPSTR pszName, int cbName, LPSTR pszVersion, int cbVersion )
{
FIXME( "(%u,%p,%d,%p,%d)\n",uDriverIndex,pszName,cbName,pszVersion,cbVersion );
return FALSE;
}
/***********************************************************************
*
* capGetDriverDescriptionW (AVICAP32.@)
*
*/
BOOL WINAPI capGetDriverDescriptionW( UINT uDriverIndex, LPWSTR pwszName, int cbName, LPWSTR pwszVersion, int cbVersion )
{
FIXME( "(%u,%p,%d,%p,%d)\n",uDriverIndex,pwszName,cbName,pwszVersion,cbVersion );
return FALSE;
}
/* all codes are removed by author */
/*
* Copyright 2002 Hidenori Takeshima
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Properties for "
FONT 8, "MS Pゴシック"
BEGIN
DEFPUSHBUTTON "OK", IDOK,4,122,50,14, WS_TABSTOP | WS_GROUP
PUSHBUTTON "キャンセル", IDCANCEL,58,122,50,14
PUSHBUTTON "適用(&A)", IDC_APPLY_BUTTON,112,122,50,14,WS_DISABLED
PUSHBUTTON "ヘルプ", IDHELP,166,122,50,14,WS_TABSTOP|WS_GROUP
CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS|WS_GROUP|WS_TABSTOP,4,4,212,114
END
IDD_WIZARD DIALOG DISCARDABLE 0, 0, 290, 159
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "ウィザード"
FONT 8, "MS Pゴシック"
BEGIN
DEFPUSHBUTTON "完了", IDC_FINISH_BUTTON,121,138,50,14
DEFPUSHBUTTON "次へ(&N) >", IDC_NEXT_BUTTON,121,138,50,14
PUSHBUTTON "< 前へ(&B)", IDC_BACK_BUTTON,71,138,50,14
PUSHBUTTON "キャンセル", IDCANCEL,178,138,50,14
PUSHBUTTON "ヘルプ", IDHELP,235,138,50,14,WS_GROUP
LTEXT "", IDC_SUNKEN_LINE,7,129,278,1,SS_SUNKEN
CONTROL "Tab", IDC_TABCONTROL,"SysTabControl32",WS_CLIPSIBLINGS | WS_DISABLED,7,7,258,5
END
IDD_TBCUSTOMIZE DIALOG DISCARDABLE 10, 20, 357, 125
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "ツールバーのカスタマイズ"
FONT 8, "MS Pゴシック"
BEGIN
DEFPUSHBUTTON "閉じる(&C)", IDCANCEL,308,6,44,14
PUSHBUTTON "リセット(&R)", IDC_RESET_BTN,308,23,44,14
PUSHBUTTON "ヘルプ(&H)", IDC_HELP_BTN,308,40,44,14
PUSHBUTTON "上へ(&U)", IDC_MOVEUP_BTN,308,74,44,14
PUSHBUTTON "下へ(&D)", IDC_MOVEDN_BTN,308,91,44,14
LTEXT "利用可能なボタン(&V):", -1,4,5,84,10
LISTBOX IDC_AVAILBTN_LBOX,4,17,120,100, LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
PUSHBUTTON "追加(&A) ->", IDOK, 131, 42, 44, 14
PUSHBUTTON "<- 削除(&R)", IDC_REMOVE_BTN,131,62,44,14
LTEXT "ツールバーのボタン(&T):", -1,182,5,78,10
LISTBOX IDC_TOOLBARBTN_LBOX, 182,17,120,100,LBS_NOTIFY | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
END
STRINGTABLE DISCARDABLE
{
IDS_CLOSE "閉じる"
}
STRINGTABLE DISCARDABLE
{
IDS_SEPARATOR "区切り"
}
......@@ -1055,4 +1055,3 @@ IDI_DRAGARROW ICON LOADONCALL DISCARDABLE
#include "comctl_En.rc"
#include "comctl_De.rc"
#include "comctl_Ja.rc"
/*
* OLE2NLS library
* Japanese
* Japanese strings in codepage 932(Shift-JIS)
* modified by Hidenori Takeshima(hidenori@a2.ctktv.ne.jp)
* (Japanese strings in EUC-JP)
*
* Copyright 1998 Marcel Baur
*
......@@ -22,127 +21,109 @@
*/
LOCVAL(LOCALE_ILANGUAGE,"0411")
LOCVAL(LOCALE_SLANGUAGE,"本語")
LOCVAL(LOCALE_SLANGUAGE,"本語")
LOCVAL(LOCALE_SENGLANGUAGE,"Japanese")
LOCVAL(LOCALE_SABBREVLANGNAME,"jpn")
LOCVAL(LOCALE_SNATIVELANGNAME,"本語")
LOCVAL(LOCALE_SNATIVELANGNAME,"本語")
LOCVAL(LOCALE_ICOUNTRY,"81")
LOCVAL(LOCALE_SCOUNTRY,"本")
LOCVAL(LOCALE_SCOUNTRY,"日本")
LOCVAL(LOCALE_SENGCOUNTRY,"Japan")
LOCVAL(LOCALE_SABBREVCTRYNAME,"JPN")
LOCVAL(LOCALE_SNATIVECTRYNAME,"本")
LOCVAL(LOCALE_SNATIVECTRYNAME,"日本")
LOCVAL(LOCALE_IDEFAULTLANGUAGE,"0411")
LOCVAL(LOCALE_IDEFAULTCOUNTRY,"81")
LOCVAL(LOCALE_IDEFAULTCODEPAGE,"932")
LOCVAL(LOCALE_IDEFAULTANSICODEPAGE,"932")
LOCVAL(LOCALE_IDEFAULTMACCODEPAGE, "10001")
LOCVAL(LOCALE_SLIST,",")
LOCVAL(LOCALE_IMEASURE,"0")
LOCVAL(LOCALE_SDECIMAL,".")
LOCVAL(LOCALE_STHOUSAND,",")
/* LOCVAL(LOCALE_IDEFAULTCODEPAGE) */
/* LOCVAL(LOCALE_IDEFAULTANSICODEPAGE) */
/* LOCVAL(LOCALE_SLIST,"") */
/* LOCVAL(LOCALE_IMEASURE,"") */
/* LOCVAL(LOCALE_SDECIMAL,"") */
/* LOCVAL(LOCALE_STHOUSAND,"") */
LOCVAL(LOCALE_SGROUPING,"3;0")
LOCVAL(LOCALE_IDIGITS,"2")
LOCVAL(LOCALE_ILZERO,"1")
LOCVAL(LOCALE_INEGNUMBER,"1")
/* LOCVAL(LOCALE_IDIGITS,"2") */
/* LOCVAL(LOCALE_ILZERO,"1") */
/* LOCVAL(LOCALE_INEGNUMBER) */
LOCVAL(LOCALE_SNATIVEDIGITS,"0123456789")
LOCVAL(LOCALE_SCURRENCY,"")
LOCVAL(LOCALE_SCURRENCY,"円")
LOCVAL(LOCALE_SINTLSYMBOL, "JPY")
LOCVAL(LOCALE_SMONDECIMALSEP,".")
LOCVAL(LOCALE_SMONTHOUSANDSEP,",")
LOCVAL(LOCALE_SMONGROUPING,"3;0")
LOCVAL(LOCALE_ICURRDIGITS,"0")
LOCVAL(LOCALE_IINTLCURRDIGITS,"2")
LOCVAL(LOCALE_ICURRENCY,"3")
LOCVAL(LOCALE_INEGCURR,"8")
LOCVAL(LOCALE_SDATE,"-")
LOCVAL(LOCALE_STIME,":")
LOCVAL(LOCALE_SSHORTDATE,"yy-MM-dd")
LOCVAL(LOCALE_SLONGDATE,"yyyy-MM-dd")
LOCVAL(LOCALE_STIMEFORMAT,"HH:mm:ss")
LOCVAL(LOCALE_IDATE,"2")
LOCVAL(LOCALE_ILDATE,"2")
/* LOCVAL(LOCALE_SMONDECIMALSEP,",") */
/* LOCVAL(LOCALE_SMONTHOUSANDSEP,".") */
/* LOCVAL(LOCALE_SMONGROUPING) */
/* LOCVAL(LOCALE_ICURRDIGITS,"2") */
/* LOCVAL(LOCALE_IINTLCURRDIGITS) */
/* LOCVAL(LOCALE_ICURRENCY,"3") */
/* LOCVAL(LOCALE_INEGCURR,"8") */
/* LOCVAL(LOCALE_SDATE,".") */
/* LOCVAL(LOCALE_STIME,":") */
LOCVAL(LOCALE_SSHORTDATE,"yyyy.MM.dd")
LOCVAL(LOCALE_SLONGDATE,"yyyy年MMMMd.日のddd")
/* LOCVAL(LOCALE_STIMEFORMAT) */
/* LOCVAL(LOCALE_IDATE,"1") */
/* LOCVAL(LOCALE_ILDATE) */
LOCVAL(LOCALE_ITIME,"1")
LOCVAL(LOCALE_ITIMEMARKPOSN,"0") /* Is this correct?(I have no documents.) */
LOCVAL(LOCALE_ICENTURY,"0")
LOCVAL(LOCALE_ITLZERO,"0")
LOCVAL(LOCALE_IDAYLZERO,"0")
LOCVAL(LOCALE_IMONLZERO,"0")
LOCVAL(LOCALE_S1159, "午前")
LOCVAL(LOCALE_S2359, "午後")
LOCVAL(LOCALE_ICALENDARTYPE, "2")
LOCVAL(LOCALE_IOPTIONALCALENDAR,"2")
LOCVAL(LOCALE_IFIRSTDAYOFWEEK,"6")
LOCVAL(LOCALE_IFIRSTWEEKOFYEAR,"0")
/* LOCVAL(LOCALE_ITIMEMARKPOSN) */
/* LOCVAL(LOCALE_ICENTURY) */
LOCVAL(LOCALE_ITLZERO,"1")
/* LOCVAL(LOCALE_IDAYLZERO) */
/* LOCVAL(LOCALE_IMONLZERO) */
/* LOCVAL(LOCALE_S1159, "") */
/* LOCVAL(LOCALE_S2359, "") */
LOCVAL(LOCALE_ICALENDARTYPE, "1")
/* LOCVAL(LOCALE_IOPTIONALCALENDAR) */
/* LOCVAL(LOCALE_IFIRSTDAYOFWEEK) */
/* LOCVAL(LOCALE_IFIRSTWEEKOFYEAR) */
LOCVAL(LOCALE_SDAYNAME1,"曜日")
LOCVAL(LOCALE_SDAYNAME2,"火曜日")
LOCVAL(LOCALE_SDAYNAME3,"曜日")
LOCVAL(LOCALE_SDAYNAME4,"木曜日")
LOCVAL(LOCALE_SDAYNAME5,"曜日")
LOCVAL(LOCALE_SDAYNAME6,"土曜日")
LOCVAL(LOCALE_SDAYNAME7,"曜日")
LOCVAL(LOCALE_SDAYNAME1,"月曜日")
LOCVAL(LOCALE_SDAYNAME2,"火曜日")
LOCVAL(LOCALE_SDAYNAME3,"水曜日")
LOCVAL(LOCALE_SDAYNAME4,"木曜日")
LOCVAL(LOCALE_SDAYNAME5,"金曜日")
LOCVAL(LOCALE_SDAYNAME6,"土曜日")
LOCVAL(LOCALE_SDAYNAME7,"日曜日")
LOCVAL(LOCALE_SABBREVDAYNAME1,"月")
LOCVAL(LOCALE_SABBREVDAYNAME2,"火")
LOCVAL(LOCALE_SABBREVDAYNAME3,"水")
LOCVAL(LOCALE_SABBREVDAYNAME4,"木")
LOCVAL(LOCALE_SABBREVDAYNAME5,"金")
LOCVAL(LOCALE_SABBREVDAYNAME6,"")
LOCVAL(LOCALE_SABBREVDAYNAME7,"日")
LOCVAL(LOCALE_SABBREVDAYNAME1,"月")
LOCVAL(LOCALE_SABBREVDAYNAME2,"火")
LOCVAL(LOCALE_SABBREVDAYNAME3,"水")
LOCVAL(LOCALE_SABBREVDAYNAME4,"木")
LOCVAL(LOCALE_SABBREVDAYNAME5,"金")
LOCVAL(LOCALE_SABBREVDAYNAME6,"土")
LOCVAL(LOCALE_SABBREVDAYNAME7,"日")
#if 0
/* classical format:-) */
LOCVAL(LOCALE_SMONTHNAME1,"睦月")
LOCVAL(LOCALE_SMONTHNAME2,"如月")
LOCVAL(LOCALE_SMONTHNAME3,"弥生")
LOCVAL(LOCALE_SMONTHNAME4,"卯月")
LOCVAL(LOCALE_SMONTHNAME5,"皐月")
LOCVAL(LOCALE_SMONTHNAME6,"水無月")
LOCVAL(LOCALE_SMONTHNAME7,"文月")
LOCVAL(LOCALE_SMONTHNAME8,"葉月")
LOCVAL(LOCALE_SMONTHNAME9,"長月")
LOCVAL(LOCALE_SMONTHNAME10,"神無月")
LOCVAL(LOCALE_SMONTHNAME11,"霜月")
LOCVAL(LOCALE_SMONTHNAME12,"師走")
LOCVAL(LOCALE_SMONTHNAME13,"")
#else
LOCVAL(LOCALE_SMONTHNAME1,"1月")
LOCVAL(LOCALE_SMONTHNAME2,"2月")
LOCVAL(LOCALE_SMONTHNAME3,"3月")
LOCVAL(LOCALE_SMONTHNAME4,"4月")
LOCVAL(LOCALE_SMONTHNAME5,"5月")
LOCVAL(LOCALE_SMONTHNAME6,"6月")
LOCVAL(LOCALE_SMONTHNAME7,"7月")
LOCVAL(LOCALE_SMONTHNAME8,"8月")
LOCVAL(LOCALE_SMONTHNAME9,"9月")
LOCVAL(LOCALE_SMONTHNAME10,"10月")
LOCVAL(LOCALE_SMONTHNAME11,"11月")
LOCVAL(LOCALE_SMONTHNAME12,"12月")
LOCVAL(LOCALE_SMONTHNAME13,"")
#endif
LOCVAL(LOCALE_SMONTHNAME1,"一月")
LOCVAL(LOCALE_SMONTHNAME2,"二月")
LOCVAL(LOCALE_SMONTHNAME3,"三月")
LOCVAL(LOCALE_SMONTHNAME4,"四月")
LOCVAL(LOCALE_SMONTHNAME5,"五月")
LOCVAL(LOCALE_SMONTHNAME6,"六月")
LOCVAL(LOCALE_SMONTHNAME7,"七月")
LOCVAL(LOCALE_SMONTHNAME8,"八月")
LOCVAL(LOCALE_SMONTHNAME9,"九月")
LOCVAL(LOCALE_SMONTHNAME10,"十月")
LOCVAL(LOCALE_SMONTHNAME11,"十一月")
LOCVAL(LOCALE_SMONTHNAME12,"十二月")
/* LOCVAL(LOCALE_SMONTHNAME13,"") */
LOCVAL(LOCALE_SABBREVMONTHNAME1,"1")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"2")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"3")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"4")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"5")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"6")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"7")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"8")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"9")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"10")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"11")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"12")
LOCVAL(LOCALE_SABBREVMONTHNAME13,"")
LOCVAL(LOCALE_SABBREVMONTHNAME1,"1月")
LOCVAL(LOCALE_SABBREVMONTHNAME2,"2月")
LOCVAL(LOCALE_SABBREVMONTHNAME3,"3月")
LOCVAL(LOCALE_SABBREVMONTHNAME4,"4月")
LOCVAL(LOCALE_SABBREVMONTHNAME5,"5月")
LOCVAL(LOCALE_SABBREVMONTHNAME6,"6月")
LOCVAL(LOCALE_SABBREVMONTHNAME7,"7月")
LOCVAL(LOCALE_SABBREVMONTHNAME8,"8月")
LOCVAL(LOCALE_SABBREVMONTHNAME9,"9月")
LOCVAL(LOCALE_SABBREVMONTHNAME10,"10月")
LOCVAL(LOCALE_SABBREVMONTHNAME11,"11月")
LOCVAL(LOCALE_SABBREVMONTHNAME12,"12月")
/* LOCVAL(LOCALE_SABBREVMONTHNAME13,"") */
LOCVAL(LOCALE_SPOSITIVESIGN, "")
LOCVAL(LOCALE_SNEGATIVESIGN, "-")
LOCVAL(LOCALE_IPOSSIGNPOSN, "1")
LOCVAL(LOCALE_INEGSIGNPOSN, "1")
LOCVAL(LOCALE_IPOSSYMPRECEDES, "0")
LOCVAL(LOCALE_IPOSSEPBYSPACE, "1")
LOCVAL(LOCALE_INEGSYMPRECEDES, "0")
LOCVAL(LOCALE_INEGSEPBYSPACE, "1")
/* LOCVAL(LOCALE_SPOSITIVESIGN, "") */
/* LOCVAL(LOCALE_SNEGATIVESIGN, "") */
/* LOCVAL(LOCALE_IPOSSIGNPOSN, "") */
/* LOCVAL(LOCALE_INEGSIGNPOSN, "") */
/* LOCVAL(LOCALE_IPOSSYMPRECEDES, "") */
/* LOCVAL(LOCALE_IPOSSEPBYSPACE, "") */
/* LOCVAL(LOCALE_INEGSYMPRECEDES, "") */
/* LOCVAL(LOCALE_INEGSEPBYSPACE, "") */
/* LOCVAL(LOCALE_FONTSIGNATURE, "") */
LOCVAL(LOCALE_SISO639LANGNAME,"ja")
LOCVAL(LOCALE_SISO3166CTRYNAME,"JP")
......
name imaadp32
file imaadp32.acm
type win32
init IMAADP32_DllMain
import winmm.dll
import user32.dll
import kernel32.dll
import ntdll.dll
debug_channels (imaadp32)
debug_channels ()
@ stdcall DriverProc(long long long long long) IMAADP32_DriverProc
@ stub DriverProc #(long long long long long)
name msg711
file msg711.drv
type win32
init MSG711_DllMain
import winmm.dll
import user32.dll
import kernel32.dll
import ntdll.dll
debug_channels (msg711)
debug_channels ()
@ stdcall DriverProc(long long long long long) MSG711_DriverProc
@ stub DriverProc #(long long long long long)
name msrle32
type win32
init MSRLE32_DllMain
import winmm.dll
import user32.dll
import kernel32.dll
import ntdll.dll
debug_channels(msrle32)
debug_channels()
@ stdcall DriverProc(long long long long long) MSRLE32_DriverProc
@ stub DriverProc #(long long long long long)
......@@ -12,15 +12,12 @@ SYMBOLFILE = $(MODULE).tmp.o
C_SRCS = \
connpt.c \
dispatch.c \
dispstd.c \
disptype.c \
hash.c \
ole2disp.c \
oleaut.c \
olefont.c \
olepicture.c \
parsedt.c \
propertyframe.c \
safearray.c \
stubs.c \
tmarshal.c \
......
/*
* Copyright 2001 Hidenori Takeshima
*
* FIXME - stub
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include "winerror.h"
#include "winnls.h" /* for PRIMARYLANGID */
#include "winreg.h" /* for HKEY_LOCAL_MACHINE */
#include "winuser.h"
#include "oleauto.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(ole);
typedef struct CStdDispImpl
{
ICOM_VFIELD(IDispatch);
struct { ICOM_VFIELD(IUnknown); } unkimpl;
UINT ref;
IUnknown* punk;
void* pvThis;
ITypeInfo* pti;
} CStdDispImpl;
static HRESULT CStdDispImpl_Construct(
CStdDispImpl* This,
IUnknown* punkOuter, void* pvThis, ITypeInfo* pti )
{
This->punk = punkOuter;
This->pvThis = pvThis;
This->pti = pti; ITypeInfo_AddRef(pti);
return S_OK;
}
static void CStdDispImpl_Destruct(
CStdDispImpl* This )
{
if ( This->pti != NULL )
ITypeInfo_Release(This->pti);
}
/****************************************************************************/
static HRESULT WINAPI In_CStdDispImpl_fnQueryInterface(
IUnknown* iface,REFIID riid,void** ppvobj)
{
CStdDispImpl* This = (CStdDispImpl*)(((BYTE*)iface)-offsetof(CStdDispImpl,unkimpl));
if ( IsEqualGUID(riid,&IID_IUnknown) )
{
*ppvobj = (void*)iface;
IUnknown_AddRef(iface);
return S_OK;
}
if ( IsEqualGUID(riid,&IID_IDispatch) )
{
*ppvobj = (void*)This;
IUnknown_AddRef((IUnknown*)This);
return S_OK;
}
return E_NOINTERFACE;
}
static ULONG WINAPI In_CStdDispImpl_fnAddRef(IUnknown* iface)
{
CStdDispImpl* This = (CStdDispImpl*)(((BYTE*)iface)-offsetof(CStdDispImpl,unkimpl));
return ++ This->ref;
}
static ULONG WINAPI In_CStdDispImpl_fnRelease(IUnknown* iface)
{
CStdDispImpl* This = (CStdDispImpl*)(((BYTE*)iface)-offsetof(CStdDispImpl,unkimpl));
if ( -- This->ref > 0 ) return This->ref;
++ This->ref;
CStdDispImpl_Destruct(This);
HeapFree(GetProcessHeap(),0,This);
return 0;
}
/****************************************************************************/
static HRESULT WINAPI CStdDispImpl_fnQueryInterface(
IDispatch* iface,REFIID riid,void** ppvobj)
{
ICOM_THIS(CStdDispImpl,iface);
return IUnknown_QueryInterface(This->punk,riid,ppvobj);
}
static ULONG WINAPI CStdDispImpl_fnAddRef(IDispatch* iface)
{
ICOM_THIS(CStdDispImpl,iface);
return IUnknown_AddRef(This->punk);
}
static ULONG WINAPI CStdDispImpl_fnRelease(IDispatch* iface)
{
ICOM_THIS(CStdDispImpl,iface);
return IUnknown_Release(This->punk);
}
static HRESULT WINAPI CStdDispImpl_fnGetTypeInfoCount(
IDispatch* iface,UINT* pctinfo)
{
ICOM_THIS(CStdDispImpl,iface);
FIXME("(%p)\n",This);
if ( pctinfo == NULL ) return E_POINTER;
*pctinfo = 1;
return S_OK;
}
static HRESULT WINAPI CStdDispImpl_fnGetTypeInfo(
IDispatch* iface,
UINT itiindex,LCID lcid,ITypeInfo** ppti)
{
ICOM_THIS(CStdDispImpl,iface);
FIXME("(%p)\n",This);
if ( ppti != NULL ) return E_POINTER;
*ppti = NULL;
if ( itiindex != 0 ) return DISP_E_BADINDEX;
/* lcid is ignored */
ITypeInfo_AddRef(This->pti);
*ppti = This->pti;
return S_OK;
}
static HRESULT WINAPI CStdDispImpl_fnGetIDsOfNames(
IDispatch* iface,
REFIID riid,LPOLESTR* ppwszNames,UINT cNames,LCID lcid,DISPID* pdispid)
{
ICOM_THIS(CStdDispImpl,iface);
FIXME("(%p)\n",This);
return DispGetIDsOfNames(This->pti,ppwszNames,cNames,pdispid);
}
static HRESULT WINAPI CStdDispImpl_fnInvoke(
IDispatch* iface,
DISPID dispid,REFIID riid,LCID lcid,WORD wFlags,
DISPPARAMS* pDispParams,VARIANT* pVarResult,
EXCEPINFO* pExcepInfo,UINT* puArgErr)
{
ICOM_THIS(CStdDispImpl,iface);
FIXME("(%p)\n",This);
return DispInvoke(This->pvThis,
This->pti,dispid,wFlags,
pDispParams,pVarResult,
pExcepInfo,puArgErr);
}
static ICOM_VTABLE(IUnknown) iunk =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
/* IUnknown */
In_CStdDispImpl_fnQueryInterface,
In_CStdDispImpl_fnAddRef,
In_CStdDispImpl_fnRelease,
};
static ICOM_VTABLE(IDispatch) idisp =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
/* IUnknown */
CStdDispImpl_fnQueryInterface,
CStdDispImpl_fnAddRef,
CStdDispImpl_fnRelease,
/* IDispatch */
CStdDispImpl_fnGetTypeInfoCount,
CStdDispImpl_fnGetTypeInfo,
CStdDispImpl_fnGetIDsOfNames,
CStdDispImpl_fnInvoke,
};
/******************************************************************************
* CreateStdDispatch (OLEAUT32.32)
*/
HRESULT WINAPI CreateStdDispatch(
IUnknown* punkOuter,
void* pvThis,
ITypeInfo* pti,
IUnknown** ppvobj )
{
HRESULT hr;
CStdDispImpl* This;
if ( punkOuter == NULL || pvThis == NULL ||
pti == NULL || ppvobj == NULL )
return E_POINTER;
This = (CStdDispImpl*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(CStdDispImpl));
if ( This == NULL ) return E_OUTOFMEMORY;
ICOM_VTBL(This) = &idisp;
ICOM_VTBL(&(This->unkimpl)) = &iunk;
This->ref = 1;
hr = CStdDispImpl_Construct( This, punkOuter, pvThis, pti );
if ( FAILED(hr) )
{
IUnknown_Release((IUnknown*)(&This->unkimpl));
return hr;
}
*ppvobj = (IUnknown*)(&This->unkimpl);
return S_OK;
}
......@@ -352,6 +352,18 @@ int WINAPI SysStringByteLen(BSTR str)
}
/******************************************************************************
* CreateDispTypeInfo [OLEAUT32.31]
*/
HRESULT WINAPI CreateDispTypeInfo(
INTERFACEDATA *pidata,
LCID lcid,
ITypeInfo **pptinfo)
{
FIXME("(%p,%ld,%p),stub\n",pidata,lcid,pptinfo);
return 0;
}
/******************************************************************************
* CreateDispTypeInfo [OLE2DISP.31]
*/
HRESULT WINAPI CreateDispTypeInfo16(
......@@ -374,6 +386,20 @@ HRESULT WINAPI CreateStdDispatch16(
{
FIXME("(%p,%p,%p,%p),stub\n",punkOuter, pvThis, ptinfo,
ppunkStdDisp);
return 0;
}
/******************************************************************************
* CreateStdDispatch [OLEAUT32.32]
*/
HRESULT WINAPI CreateStdDispatch(
IUnknown* punkOuter,
void* pvThis,
ITypeInfo* ptinfo,
IUnknown** ppunkStdDisp)
{
FIXME("(%p,%p,%p,%p),stub\n",punkOuter, pvThis, ptinfo,
ppunkStdDisp);
return E_NOTIMPL;
}
......
......@@ -35,17 +35,30 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
*/
HCURSOR WINAPI OleIconToCursor( HINSTANCE hinstExe, HICON hicon)
{
ICONINFO ii;
TRACE("(%x,%x)\n",hinstExe,hicon);
ZeroMemory( &ii, sizeof(ii) );
if ( !GetIconInfo( hicon, &ii ) )
return (HCURSOR)NULL;
ii.fIcon = FALSE;
return CreateIconIndirect( &ii );
FIXME("(%x,%x), not implemented (olepro32.dll)\n",hinstExe,hicon);
return S_OK;
}
/***********************************************************************
* OleCreatePropertyFrameIndirect (OLEAUT32.416)
*/
HRESULT WINAPI OleCreatePropertyFrameIndirect( LPOCPFIPARAMS lpParams)
{
FIXME("(%p), not implemented (olepro32.dll)\n",lpParams);
return S_OK;
}
/***********************************************************************
* OleCreatePropertyFrame (OLEAUT32.417)
*/
HRESULT WINAPI OleCreatePropertyFrame(
HWND hwndOwner, UINT x, UINT y, LPCOLESTR lpszCaption,ULONG cObjects,
LPUNKNOWN* ppUnk, ULONG cPages, LPCLSID pPageClsID, LCID lcid,
DWORD dwReserved, LPVOID pvReserved )
{
FIXME("(%x,%d,%d,%s,%ld,%p,%ld,%p,%x,%ld,%p), not implemented (olepro32.dll)\n",
hwndOwner,x,y,debugstr_w(lpszCaption),cObjects,ppUnk,cPages,
pPageClsID, (int)lcid,dwReserved,pvReserved);
return S_OK;
}
......@@ -4,17 +4,19 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = shdocvw.dll
EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o
C_SRCS = \
api.c \
browser.c \
comimpl.c \
connect.c \
shdocvw.c
classinfo.c \
events.c \
factory.c \
misc.c \
oleobject.c \
persist.c \
shdocvw_main.c \
webbrowser.c
@MAKE_DLL_RULES@
......
/*
* Implementation of IProvideClassInfo interfaces for IE Web Browser control
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <string.h>
#include "wine/debug.h"
#include "shdocvw.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/**********************************************************************
* Implement the IProvideClassInfo interface
*
* FIXME: Should we just pass in the IProvideClassInfo2 methods rather
* reimplementing them here?
*/
static HRESULT WINAPI WBPCI_QueryInterface(LPPROVIDECLASSINFO iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IProvideClassInfoImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBPCI_AddRef(LPPROVIDECLASSINFO iface)
{
ICOM_THIS(IProvideClassInfoImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBPCI_Release(LPPROVIDECLASSINFO iface)
{
ICOM_THIS(IProvideClassInfoImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
/* Return an ITypeInfo interface to retrieve type library info about
* this control.
*/
static HRESULT WINAPI WBPCI_GetClassInfo(LPPROVIDECLASSINFO iface, LPTYPEINFO *ppTI)
{
FIXME("stub: LPTYPEINFO = %p\n", *ppTI);
return S_OK;
}
/**********************************************************************
* IProvideClassInfo virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IProvideClassInfo) WBPCI_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBPCI_QueryInterface,
WBPCI_AddRef,
WBPCI_Release,
WBPCI_GetClassInfo
};
IProvideClassInfoImpl SHDOCVW_ProvideClassInfo = { &WBPCI_Vtbl, 1 };
/**********************************************************************
* Implement the IProvideClassInfo2 interface (inherits from
* IProvideClassInfo).
*/
static HRESULT WINAPI WBPCI2_QueryInterface(LPPROVIDECLASSINFO2 iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IProvideClassInfo2Impl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBPCI2_AddRef(LPPROVIDECLASSINFO2 iface)
{
ICOM_THIS(IProvideClassInfo2Impl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBPCI2_Release(LPPROVIDECLASSINFO2 iface)
{
ICOM_THIS(IProvideClassInfo2Impl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
/* Return an ITypeInfo interface to retrieve type library info about
* this control.
*/
static HRESULT WINAPI WBPCI2_GetClassInfo(LPPROVIDECLASSINFO2 iface, LPTYPEINFO *ppTI)
{
FIXME("stub: LPTYPEINFO = %p\n", *ppTI);
return S_OK;
}
/* Get the IID for generic default event callbacks. This IID will
* in theory be used to later query for an IConnectionPoint to connect
* an event sink (callback implmentation in the OLE control site)
* to this control.
*/
static HRESULT WINAPI WBPCI2_GetGUID(LPPROVIDECLASSINFO2 iface,
DWORD dwGuidKind, GUID *pGUID)
{
FIXME("stub: dwGuidKind = %ld, pGUID = %s\n", dwGuidKind, debugstr_guid(pGUID));
if (dwGuidKind != GUIDKIND_DEFAULT_SOURCE_DISP_IID)
{
FIXME ("Requested unsupported GUID type: %ld\n", dwGuidKind);
return E_FAIL; /* Is there a better return type here? */
}
/* FIXME: Returning IPropertyNotifySink interface, but should really
* return a more generic event set (???) dispinterface.
* However, this hack, allows a control site to return with success
* (MFC's COleControlSite falls back to older IProvideClassInfo interface
* if GetGUID() fails to return a non-NULL GUID).
*/
memcpy(pGUID, &IID_IPropertyNotifySink, sizeof(GUID));
FIXME("Wrongly returning IPropertyNotifySink interface %s\n",
debugstr_guid(pGUID));
return S_OK;
}
/**********************************************************************
* IProvideClassInfo virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IProvideClassInfo2) WBPCI2_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBPCI2_QueryInterface,
WBPCI2_AddRef,
WBPCI2_Release,
WBPCI2_GetClassInfo,
WBPCI2_GetGUID
};
IProvideClassInfo2Impl SHDOCVW_ProvideClassInfo2 = { &WBPCI2_Vtbl, 1 };
/*
* A basic implementation for COM DLL implementor.
*
* Copyright (C) Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef WINE_COMIMPL_H
#define WINE_COMIMPL_H
/*
This code provides a basic thread-safe COM implementation
including aggregation(and an IClassFactory implementation).
This code is based on my quartz code.
The usage of this library is:
1) copy comimpl.h and comimpl.c.
2) implement the global class entries 'COMIMPL_ClassList'.
3) export COMIMPL_DllMain, COMIMPL_DllGetClassObject and
COMIMPL_DllCanUnloadNow.
4) add 'comimpl' to your debug channels.
5) implement your IUnknown as a thunk to call
COMIMPL_IUnkImpl.punk methods.
6) provide pointers of vtables in constructor.
7) optionally, you can edit comimpl.h and/or comimpl.c.
A sample allocator of class COne that supports
two interface IOne and ITwo is:
const COMIMPL_CLASSENTRY COMIMPL_ClassList[] =
{
{ &CLSID_COne, &COne_AllocObj },
{ NULL, NULL } << the last entry must be NULL >>
};
typedef struct COne
{
COMIMPL_IUnkImpl vfunk; << must be the first member of this struct >>
struct { ICOM_VFIELD(IOne); } vfone;
struct { ICOM_VFIELD(ITwo); } vftwo;
<< ... >>
} COne;
#define COne_THIS(iface,member) COne* This = ((COne*)(((char*)iface)-offsetof(COne,member)))
static COMIMPL_IFEntry IFEntries[] =
{
<< all supported interfaces >>
{ &IID_IOne, offsetof(COne,vfone)-offsetof(COne,vfunk) },
{ &IID_ITwo, offsetof(COne,vftwo)-offsetof(COne,vfunk) },
};
static void COne_Destructor(IUnknown* iface)
{
COne_THIS(iface,vfunk);
<< ... implement destructor ... >>
}
HRESULT COne_AllocObj(IUnknown* punkOuter,void** ppobj)
{
COne* This;
This = (COne*)COMIMPL_AllocObj( sizeof(COne) );
if ( This == NULL ) return E_OUTOFMEMORY;
COMIMPL_IUnkInit( &This->vfunk, punkOuter );
This->vfunk.pEntries = IFEntries;
This->vfunk.dwEntries = sizeof(IFEntries)/sizeof(IFEntries[0]);
This->vfunk.pOnFinalRelease = COne_Destructor;
ICOM_VTBL(&This->vfone) = &ione;
ICOM_VTBL(&This->vftwo) = &itwo;
<< ... implement constructor ... >>
<< if error occurs in constructing, you can call simply
punk::Release() and return HRESULT. >>
*ppobj = (void*)(&This->vfunk);
return S_OK; << return S_OK if succeeded >>
}
*/
/* if per-thread initialization is needed, uncomment the following line */
/*#define COMIMPL_PERTHREAD_INIT*/
/* If an own heap is needed, customize the following line */
#define COMIMPL_hHeap GetProcessHeap()
typedef HRESULT (*COMIMPL_pCreateIUnknown)(IUnknown* punkOuter,void** ppobj);
typedef void (*COMIMPL_pOnFinalRelease)(IUnknown* punkInner);
typedef struct COMIMPL_IFEntry COMIMPL_IFEntry;
typedef struct COMIMPL_IFDelegation COMIMPL_IFDelegation;
typedef struct COMIMPL_IUnkImpl COMIMPL_IUnkImpl;
struct COMIMPL_IFEntry
{
const IID* piid; /* interface ID. */
size_t ofsVTPtr; /* offset from IUnknown. */
};
struct COMIMPL_IFDelegation
{
struct COMIMPL_IFDelegation* pNext;
HRESULT (*pOnQueryInterface)(
IUnknown* punk, const IID* piid, void** ppobj );
};
/* COMIMPL_IUnkimpl must be aligned for InterlockedExchangeAdd. */
#include <pshpack4.h>
struct COMIMPL_IUnkImpl
{
/* pointer of IUnknown interface. */
ICOM_VFIELD(IUnknown);
/* array of supported IIDs and offsets. */
const COMIMPL_IFEntry* pEntries;
DWORD dwEntries;
/* list of delegation handlers. */
COMIMPL_IFDelegation* pDelegationFirst;
/* called on final release. */
COMIMPL_pOnFinalRelease pOnFinalRelease;
/* IUnknown fields. */
LONG ref;
IUnknown* punkControl;
};
#include <poppack.h>
typedef struct COMIMPL_CLASSENTRY
{
const CLSID* pclsid;
COMIMPL_pCreateIUnknown pCreateIUnk;
} COMIMPL_CLASSENTRY;
extern const COMIMPL_CLASSENTRY COMIMPL_ClassList[]; /* must be provided */
void COMIMPL_IUnkInit( COMIMPL_IUnkImpl* pImpl, IUnknown* punkOuter );
void COMIMPL_IUnkAddDelegationHandler(
COMIMPL_IUnkImpl* pImpl, COMIMPL_IFDelegation* pDelegation );
BOOL WINAPI COMIMPL_DllMain(
HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved );
HRESULT WINAPI COMIMPL_DllGetClassObject(
const CLSID* pclsid,const IID* piid,void** ppv);
HRESULT WINAPI COMIMPL_DllCanUnloadNow(void);
void* COMIMPL_AllocObj( DWORD dwSize );
void COMIMPL_FreeObj( void* pobj ); /* for internal use only. */
#endif /* WINE_COMIMPL_H */
/*
* CConnectionPointImpl
* FIXME - stub
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
* Copyright 2002 Hidenori Takeshima
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include <string.h>
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "ole2.h"
#include "wine/obj_base.h"
#include "wine/obj_storage.h"
#include "wine/obj_misc.h"
#include "wine/obj_moniker.h"
#include "wine/obj_inplace.h"
#include "wine/obj_dataobject.h"
#include "wine/obj_oleobj.h"
#include "wine/obj_oleaut.h"
#include "wine/obj_olefont.h"
#include "wine/obj_dragdrop.h"
#include "wine/obj_oleview.h"
#include "wine/obj_control.h"
#include "wine/obj_connection.h"
#include "wine/obj_property.h"
#include "wine/obj_oleundo.h"
#include "wine/obj_webbrowser.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
#include "shdocvw.h"
typedef struct CConnectionPointImpl
{
COMIMPL_IUnkImpl vfunk; /* must be the first member of this struct */
struct { ICOM_VFIELD(IConnectionPoint); } vfcpoint;
/* CConnectionPointImpl variables */
} CConnectionPointImpl;
#define CConnectionPointImpl_THIS(iface,member) CConnectionPointImpl* This = ((CConnectionPointImpl*)(((char*)iface)-offsetof(CConnectionPointImpl,member)))
static COMIMPL_IFEntry IFEntries[] =
{
{ &IID_IConnectionPoint, offsetof(CConnectionPointImpl,vfcpoint)-offsetof(CConnectionPointImpl,vfunk) },
};
/***************************************************************************
*
* CConnectionPointImpl::IConnectionPoint
*/
/**********************************************************************
* Implement the IConnectionPoint interface
*/
static HRESULT WINAPI WBCP_QueryInterface(LPCONNECTIONPOINT iface,
REFIID riid, LPVOID *ppobj)
{
CConnectionPointImpl_THIS(iface,vfcpoint);
TRACE("(%p)->()\n",This);
return IUnknown_QueryInterface(This->vfunk.punkControl,riid,ppobj);
}
static ULONG WINAPI WBCP_AddRef(LPCONNECTIONPOINT iface)
{
CConnectionPointImpl_THIS(iface,vfcpoint);
TRACE("(%p)->()\n",This);
return IUnknown_AddRef(This->vfunk.punkControl);
}
static ULONG WINAPI WBCP_Release(LPCONNECTIONPOINT iface)
{
CConnectionPointImpl_THIS(iface,vfcpoint);
TRACE("(%p)->()\n",This);
return IUnknown_Release(This->vfunk.punkControl);
}
static HRESULT WINAPI WBCP_GetConnectionInterface(LPCONNECTIONPOINT iface, IID* pIId)
{
FIXME("stub: %s\n", debugstr_guid(pIId));
return E_NOTIMPL;
}
/* Get this connection point's owning container */
static HRESULT WINAPI
WBCP_GetConnectionPointContainer(LPCONNECTIONPOINT iface,
LPCONNECTIONPOINTCONTAINER *ppCPC)
{
FIXME("stub: IConnectionPointContainer = %p\n", *ppCPC);
return E_NOTIMPL;
}
/* Connect the pUnkSink event-handling implementation (in the control site)
* to this connection point. Return a handle to this connection in
* pdwCookie (for later use in Unadvise()).
*/
static HRESULT WINAPI WBCP_Advise(LPCONNECTIONPOINT iface,
LPUNKNOWN pUnkSink, DWORD *pdwCookie)
{
FIXME("stub: IUnknown = %p, connection cookie = %ld\n", pUnkSink, *pdwCookie);
#if 0
static int new_cookie;
FIXME("stub: IUnknown = %p, connection cookie = %ld\n", pUnkSink, *pdwCookie);
*pdwCookie = ++new_cookie;
TRACE ("Returning cookie = %ld\n", *pdwCookie);
#endif
return E_NOTIMPL;
}
/* Disconnect this implementation from the connection point. */
static HRESULT WINAPI WBCP_Unadvise(LPCONNECTIONPOINT iface,
DWORD dwCookie)
{
FIXME("stub: cookie to disconnect = %ld\n", dwCookie);
return E_NOTIMPL;
}
/* Get a list of connections in this connection point. */
static HRESULT WINAPI WBCP_EnumConnections(LPCONNECTIONPOINT iface,
LPENUMCONNECTIONS *ppEnum)
{
FIXME("stub: IEnumConnections = %p\n", *ppEnum);
return E_NOTIMPL;
}
/**********************************************************************
* IConnectionPoint virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IConnectionPoint) WBCP_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBCP_QueryInterface,
WBCP_AddRef,
WBCP_Release,
WBCP_GetConnectionInterface,
WBCP_GetConnectionPointContainer,
WBCP_Advise,
WBCP_Unadvise,
WBCP_EnumConnections
};
/***************************************************************************
*
* new/delete CConnectionPointImpl
*
*/
static void CConnectionPointImpl_Destructor(IUnknown* iface)
{
CConnectionPointImpl_THIS(iface,vfunk);
FIXME("(%p)\n",This);
/* destructor */
}
HRESULT CConnectionPointImpl_AllocObj(IUnknown* punkOuter,void** ppobj)
{
CConnectionPointImpl* This;
This = (CConnectionPointImpl*)COMIMPL_AllocObj( sizeof(CConnectionPointImpl) );
if ( This == NULL ) return E_OUTOFMEMORY;
COMIMPL_IUnkInit( &This->vfunk, punkOuter );
This->vfunk.pEntries = IFEntries;
This->vfunk.dwEntries = sizeof(IFEntries)/sizeof(IFEntries[0]);
This->vfunk.pOnFinalRelease = CConnectionPointImpl_Destructor;
ICOM_VTBL(&This->vfcpoint) = &WBCP_Vtbl;
/* constructor */
return S_OK;
}
/*
* Implementation of event-related interfaces for IE Web Browser control:
*
* - IConnectionPointContainer
* - IConnectionPoint
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <string.h>
#include "wine/debug.h"
#include "shdocvw.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/**********************************************************************
* Implement the IConnectionPointContainer interface
*/
static HRESULT WINAPI WBCPC_QueryInterface(LPCONNECTIONPOINTCONTAINER iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IConnectionPointContainerImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBCPC_AddRef(LPCONNECTIONPOINTCONTAINER iface)
{
ICOM_THIS(IConnectionPointContainerImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBCPC_Release(LPCONNECTIONPOINTCONTAINER iface)
{
ICOM_THIS(IConnectionPointContainerImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
/* Get a list of connection points inside this container. */
static HRESULT WINAPI WBCPC_EnumConnectionPoints(LPCONNECTIONPOINTCONTAINER iface,
LPENUMCONNECTIONPOINTS *ppEnum)
{
FIXME("stub: IEnumConnectionPoints = %p\n", *ppEnum);
return S_OK;
}
/* Retrieve the connection point in this container associated with the
* riid interface. When events occur in the control, the control can
* call backwards into its embedding site, through these interfaces.
*/
static HRESULT WINAPI WBCPC_FindConnectionPoint(LPCONNECTIONPOINTCONTAINER iface,
REFIID riid, LPCONNECTIONPOINT *ppCP)
{
TRACE(": IID = %s, IConnectionPoint = %p\n", debugstr_guid(riid), *ppCP);
/* For now, return the same IConnectionPoint object for both
* event interface requests.
*/
if (IsEqualGUID (&IID_INotifyDBEvents, riid))
{
TRACE("Returning connection point %p for IID_INotifyDBEvents\n",
&SHDOCVW_ConnectionPoint);
*ppCP = (LPCONNECTIONPOINT)&SHDOCVW_ConnectionPoint;
return S_OK;
}
else if (IsEqualGUID (&IID_IPropertyNotifySink, riid))
{
TRACE("Returning connection point %p for IID_IPropertyNotifySink\n",
&SHDOCVW_ConnectionPoint);
*ppCP = (LPCONNECTIONPOINT)&SHDOCVW_ConnectionPoint;
return S_OK;
}
return E_FAIL;
}
/**********************************************************************
* IConnectionPointContainer virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IConnectionPointContainer) WBCPC_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBCPC_QueryInterface,
WBCPC_AddRef,
WBCPC_Release,
WBCPC_EnumConnectionPoints,
WBCPC_FindConnectionPoint
};
IConnectionPointContainerImpl SHDOCVW_ConnectionPointContainer = { &WBCPC_Vtbl, 1 };
/**********************************************************************
* Implement the IConnectionPoint interface
*/
static HRESULT WINAPI WBCP_QueryInterface(LPCONNECTIONPOINT iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IConnectionPointImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBCP_AddRef(LPCONNECTIONPOINT iface)
{
ICOM_THIS(IConnectionPointImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBCP_Release(LPCONNECTIONPOINT iface)
{
ICOM_THIS(IConnectionPointImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
static HRESULT WINAPI WBCP_GetConnectionInterface(LPCONNECTIONPOINT iface, IID* pIId)
{
FIXME("stub: %s\n", debugstr_guid(pIId));
return S_OK;
}
/* Get this connection point's owning container */
static HRESULT WINAPI
WBCP_GetConnectionPointContainer(LPCONNECTIONPOINT iface,
LPCONNECTIONPOINTCONTAINER *ppCPC)
{
FIXME("stub: IConnectionPointContainer = %p\n", *ppCPC);
return S_OK;
}
/* Connect the pUnkSink event-handling implementation (in the control site)
* to this connection point. Return a handle to this connection in
* pdwCookie (for later use in Unadvise()).
*/
static HRESULT WINAPI WBCP_Advise(LPCONNECTIONPOINT iface,
LPUNKNOWN pUnkSink, DWORD *pdwCookie)
{
static int new_cookie;
FIXME("stub: IUnknown = %p, connection cookie = %ld\n", pUnkSink, *pdwCookie);
*pdwCookie = ++new_cookie;
TRACE ("Returning cookie = %ld\n", *pdwCookie);
return S_OK;
}
/* Disconnect this implementation from the connection point. */
static HRESULT WINAPI WBCP_Unadvise(LPCONNECTIONPOINT iface,
DWORD dwCookie)
{
FIXME("stub: cookie to disconnect = %ld\n", dwCookie);
return S_OK;
}
/* Get a list of connections in this connection point. */
static HRESULT WINAPI WBCP_EnumConnections(LPCONNECTIONPOINT iface,
LPENUMCONNECTIONS *ppEnum)
{
FIXME("stub: IEnumConnections = %p\n", *ppEnum);
return S_OK;
}
/**********************************************************************
* IConnectionPoint virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IConnectionPoint) WBCP_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBCP_QueryInterface,
WBCP_AddRef,
WBCP_Release,
WBCP_GetConnectionInterface,
WBCP_GetConnectionPointContainer,
WBCP_Advise,
WBCP_Unadvise,
WBCP_EnumConnections
};
IConnectionPointImpl SHDOCVW_ConnectionPoint = { &WBCP_Vtbl, 1 };
/*
* Implementation of class factory for IE Web Browser
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <string.h>
#include "wine/debug.h"
#include "shdocvw.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/**********************************************************************
* Implement the IWebBrowser class factory
*
* (Based on implementation in ddraw/main.c)
*/
/**********************************************************************
* WBCF_QueryInterface (IUnknown)
*/
static HRESULT WINAPI WBCF_QueryInterface(LPCLASSFACTORY iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IClassFactoryImpl, iface);
TRACE ("\n");
/*
* Perform a sanity check on the parameters.
*/
if ((This == NULL) || (ppobj == NULL) )
return E_INVALIDARG;
return E_NOINTERFACE;
}
/************************************************************************
* WBCF_AddRef (IUnknown)
*/
static ULONG WINAPI WBCF_AddRef(LPCLASSFACTORY iface)
{
ICOM_THIS(IClassFactoryImpl, iface);
TRACE("\n");
return ++(This->ref);
}
/************************************************************************
* WBCF_Release (IUnknown)
*/
static ULONG WINAPI WBCF_Release(LPCLASSFACTORY iface)
{
ICOM_THIS(IClassFactoryImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
/************************************************************************
* WBCF_CreateInstance (IClassFactory)
*/
static HRESULT WINAPI WBCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IClassFactoryImpl, iface);
/* Don't support aggregation (yet?) */
if (pOuter)
{
TRACE ("Failed attempt to aggregate IWebBrowser\n");
return CLASS_E_NOAGGREGATION;
}
TRACE("(%p)->(%p,%s,%p)\n", This, pOuter, debugstr_guid(riid), ppobj);
if ((IsEqualGUID (&IID_IOleObject, riid)))
{
TRACE ("Instantiating IOleObject component\n");
*ppobj = (LPVOID)&SHDOCVW_OleObject;
return S_OK;
}
return CLASS_E_CLASSNOTAVAILABLE;
}
/************************************************************************
* WBCF_LockServer (IClassFactory)
*/
static HRESULT WINAPI WBCF_LockServer(LPCLASSFACTORY iface, BOOL dolock)
{
ICOM_THIS(IClassFactoryImpl, iface);
FIXME("(%p)->(%d),stub!\n", This, dolock);
return S_OK;
}
static ICOM_VTABLE(IClassFactory) WBCF_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBCF_QueryInterface,
WBCF_AddRef,
WBCF_Release,
WBCF_CreateInstance,
WBCF_LockServer
};
IClassFactoryImpl SHDOCVW_ClassFactory = { &WBCF_Vtbl, 1 };
/*
* Implementation of miscellaneous interfaces for IE Web Browser control:
*
* - IQuickActivate
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "wine/debug.h"
#include "shdocvw.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/**********************************************************************
* Implement the IQuickActivate interface
*/
static HRESULT WINAPI WBQA_QueryInterface(LPQUICKACTIVATE iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IQuickActivateImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBQA_AddRef(LPQUICKACTIVATE iface)
{
ICOM_THIS(IQuickActivateImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBQA_Release(LPQUICKACTIVATE iface)
{
ICOM_THIS(IQuickActivateImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
/* Alternative interface for quicker, easier activation of a control. */
static HRESULT WINAPI WBQA_QuickActivate(LPQUICKACTIVATE iface,
QACONTAINER *pQaContainer,
QACONTROL *pQaControl)
{
FIXME("stub: QACONTAINER = %p, QACONTROL = %p\n", pQaContainer, pQaControl);
return S_OK;
}
static HRESULT WINAPI WBQA_SetContentExtent(LPQUICKACTIVATE iface, LPSIZEL pSizel)
{
FIXME("stub: LPSIZEL = %p\n", pSizel);
return E_NOINTERFACE;
}
static HRESULT WINAPI WBQA_GetContentExtent(LPQUICKACTIVATE iface, LPSIZEL pSizel)
{
FIXME("stub: LPSIZEL = %p\n", pSizel);
return E_NOINTERFACE;
}
/**********************************************************************
* IQuickActivate virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IQuickActivate) WBQA_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBQA_QueryInterface,
WBQA_AddRef,
WBQA_Release,
WBQA_QuickActivate,
WBQA_SetContentExtent,
WBQA_GetContentExtent
};
IQuickActivateImpl SHDOCVW_QuickActivate = { &WBQA_Vtbl, 1 };
/*
* Implementation of IPersist interfaces for IE Web Browser control
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "wine/debug.h"
#include "shdocvw.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/**********************************************************************
* Implement the IPersistStorage interface
*/
static HRESULT WINAPI WBPS_QueryInterface(LPPERSISTSTORAGE iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IPersistStorageImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBPS_AddRef(LPPERSISTSTORAGE iface)
{
ICOM_THIS(IPersistStorageImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBPS_Release(LPPERSISTSTORAGE iface)
{
ICOM_THIS(IPersistStorageImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
static HRESULT WINAPI WBPS_GetClassID(LPPERSISTSTORAGE iface, CLSID *pClassID)
{
FIXME("stub: CLSID = %s\n", debugstr_guid(pClassID));
return S_OK;
}
static HRESULT WINAPI WBPS_IsDirty(LPPERSISTSTORAGE iface)
{
FIXME("stub\n");
return S_OK;
}
static HRESULT WINAPI WBPS_InitNew(LPPERSISTSTORAGE iface, LPSTORAGE pStg)
{
FIXME("stub: LPSTORAGE = %p\n", pStg);
return S_OK;
}
static HRESULT WINAPI WBPS_Load(LPPERSISTSTORAGE iface, LPSTORAGE pStg)
{
FIXME("stub: LPSTORAGE = %p\n", pStg);
return S_OK;
}
static HRESULT WINAPI WBPS_Save(LPPERSISTSTORAGE iface, LPSTORAGE pStg,
BOOL fSameAsLoad)
{
FIXME("stub: LPSTORAGE = %p, fSameAsLoad = %d\n", pStg, fSameAsLoad);
return S_OK;
}
static HRESULT WINAPI WBPS_SaveCompleted(LPPERSISTSTORAGE iface, LPSTORAGE pStgNew)
{
FIXME("stub: LPSTORAGE = %p\n", pStgNew);
return S_OK;
}
/**********************************************************************
* IPersistStorage virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IPersistStorage) WBPS_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBPS_QueryInterface,
WBPS_AddRef,
WBPS_Release,
WBPS_GetClassID,
WBPS_IsDirty,
WBPS_InitNew,
WBPS_Load,
WBPS_Save,
WBPS_SaveCompleted
};
IPersistStorageImpl SHDOCVW_PersistStorage = { &WBPS_Vtbl, 1 };
/**********************************************************************
* Implement the IPersistStreamInit interface
*/
static HRESULT WINAPI WBPSI_QueryInterface(LPPERSISTSTREAMINIT iface,
REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IPersistStreamInitImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WBPSI_AddRef(LPPERSISTSTREAMINIT iface)
{
ICOM_THIS(IPersistStreamInitImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WBPSI_Release(LPPERSISTSTREAMINIT iface)
{
ICOM_THIS(IPersistStreamInitImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
static HRESULT WINAPI WBPSI_GetClassID(LPPERSISTSTREAMINIT iface, CLSID *pClassID)
{
FIXME("stub: CLSID = %s\n", debugstr_guid(pClassID));
return S_OK;
}
static HRESULT WINAPI WBPSI_IsDirty(LPPERSISTSTREAMINIT iface)
{
FIXME("stub\n");
return S_OK;
}
static HRESULT WINAPI WBPSI_Load(LPPERSISTSTREAMINIT iface, LPSTREAM pStg)
{
FIXME("stub: LPSTORAGE = %p\n", pStg);
return S_OK;
}
static HRESULT WINAPI WBPSI_Save(LPPERSISTSTREAMINIT iface, LPSTREAM pStg,
BOOL fSameAsLoad)
{
FIXME("stub: LPSTORAGE = %p, fSameAsLoad = %d\n", pStg, fSameAsLoad);
return S_OK;
}
static HRESULT WINAPI WBPSI_GetSizeMax(LPPERSISTSTREAMINIT iface,
ULARGE_INTEGER *pcbSize)
{
FIXME("stub: ULARGE_INTEGER = %p\n", pcbSize);
return S_OK;
}
static HRESULT WINAPI WBPSI_InitNew(LPPERSISTSTREAMINIT iface)
{
FIXME("stub\n");
return S_OK;
}
/**********************************************************************
* IPersistStreamInit virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IPersistStreamInit) WBPSI_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WBPSI_QueryInterface,
WBPSI_AddRef,
WBPSI_Release,
WBPSI_GetClassID,
WBPSI_IsDirty,
WBPSI_Load,
WBPSI_Save,
WBPSI_GetSizeMax,
WBPSI_InitNew
};
IPersistStreamInitImpl SHDOCVW_PersistStreamInit = { &WBPSI_Vtbl, 1 };
/*
* The list of exported class.
*
* Copyright 2002 Hidenori Takeshima
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include "winbase.h"
#include "winuser.h"
#include "wingdi.h"
#include "ole2.h"
#include "oleauto.h"
#include "wine/obj_webbrowser.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
#include "shdocvw.h"
const COMIMPL_CLASSENTRY COMIMPL_ClassList[] =
{
{ &CLSID_WebBrowser, &CWebBrowserImpl_AllocObj },
{ NULL, NULL } /* the last entry must be NULL */
};
/*
* Header includes for shdocvw.dll
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
* Copyright 2002 Hidenori Takeshima
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
......@@ -17,18 +18,190 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef WINE_SHDOCVW_H
#define WINE_SHDOCVW_H
#ifndef __WINE_SHDOCVW_H
#define __WINE_SHDOCVW_H
/* FIXME: Is there a better way to deal with all these includes? */
#include "wingdi.h"
#include "winbase.h"
#include "winuser.h"
#include "wine/obj_base.h"
#include "wine/obj_storage.h"
#include "wine/obj_misc.h"
#include "wine/obj_moniker.h"
#include "wine/obj_inplace.h"
#include "wine/obj_dataobject.h"
#include "wine/obj_oleobj.h"
#include "wine/obj_oleaut.h"
#include "wine/obj_olefont.h"
#include "wine/obj_dragdrop.h"
#include "wine/obj_oleview.h"
#include "wine/obj_control.h"
#include "wine/obj_connection.h"
#include "wine/obj_property.h"
#include "wine/obj_oleundo.h"
#include "wine/obj_webbrowser.h"
/**********************************************************************
* IClassFactory declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IClassFactory);
DWORD ref;
} IClassFactoryImpl;
extern IClassFactoryImpl SHDOCVW_ClassFactory;
/**********************************************************************
* IOleObject declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IOleObject);
DWORD ref;
} IOleObjectImpl;
extern IOleObjectImpl SHDOCVW_OleObject;
/**********************************************************************
* IOleInPlaceObject declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IOleInPlaceObject);
DWORD ref;
} IOleInPlaceObjectImpl;
extern IOleInPlaceObjectImpl SHDOCVW_OleInPlaceObject;
/**********************************************************************
* IOleControl declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IOleControl);
DWORD ref;
} IOleControlImpl;
extern IOleControlImpl SHDOCVW_OleControl;
/**********************************************************************
* IWebBrowser declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IWebBrowser);
DWORD ref;
} IWebBrowserImpl;
extern IWebBrowserImpl SHDOCVW_WebBrowser;
/**********************************************************************
* IProvideClassInfo declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IProvideClassInfo);
DWORD ref;
} IProvideClassInfoImpl;
extern IProvideClassInfoImpl SHDOCVW_ProvideClassInfo;
/**********************************************************************
* IProvideClassInfo2 declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IProvideClassInfo2);
DWORD ref;
} IProvideClassInfo2Impl;
#include "comimpl.h"
extern IProvideClassInfo2Impl SHDOCVW_ProvideClassInfo2;
/**********************************************************************
* IPersistStorage declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IPersistStorage);
DWORD ref;
} IPersistStorageImpl;
HRESULT CWebBrowserImpl_AllocObj(IUnknown* punkOuter,void** ppobj);
HRESULT CConnectionPointImpl_AllocObj(IUnknown* punkOuter,void** ppobj);
extern IPersistStorageImpl SHDOCVW_PersistStorage;
/* FIXME - move to header... */
/**********************************************************************
* IPersistStreamInit declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IPersistStreamInit);
DWORD ref;
} IPersistStreamInitImpl;
extern IPersistStreamInitImpl SHDOCVW_PersistStreamInit;
/**********************************************************************
* IQuickActivate declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IQuickActivate);
DWORD ref;
} IQuickActivateImpl;
extern IQuickActivateImpl SHDOCVW_QuickActivate;
/**********************************************************************
* IConnectionPointContainer declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IConnectionPointContainer);
DWORD ref;
} IConnectionPointContainerImpl;
extern IConnectionPointContainerImpl SHDOCVW_ConnectionPointContainer;
/**********************************************************************
* IConnectionPoint declaration for SHDOCVW.DLL
*/
typedef struct
{
/* IUnknown fields */
ICOM_VFIELD(IConnectionPoint);
DWORD ref;
} IConnectionPointImpl;
extern IConnectionPointImpl SHDOCVW_ConnectionPoint;
/* Other stuff.. */
DEFINE_GUID(IID_INotifyDBEvents,
0xdb526cc0, 0xd188, 0x11cd, 0xad, 0x48, 0x0, 0xaa, 0x0, 0x3c, 0x9c, 0xb6);
#endif /* WINE_SHDOCVW_H */
#endif /* __WINE_SHDOCVW_H */
name shdocvw
type win32
init SHDOCVW_DllMain
import ole32.dll
import kernel32.dll
......
/*
* SHDOCVW - Internet Explorer Web Control
* FIXME - stub
* SHDOCVW - Internet Explorer Web Control
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
......@@ -21,6 +20,7 @@
#include <string.h>
#include "winreg.h"
#include "initguid.h"
#include "ole2.h"
#include "shlwapi.h"
......@@ -30,38 +30,67 @@
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/***********************************************************************
* DllGetVersion (SHDOCVW.@)
* DllCanUnloadNow (SHDOCVW.109) */
HRESULT WINAPI SHDOCVW_DllCanUnloadNow(void)
{
FIXME("(void): stub\n");
return S_FALSE;
}
/*************************************************************************
* DllGetClassObject (SHDOCVW.312)
*/
HRESULT WINAPI SHDOCVW_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
{
TRACE("\n");
if (IsEqualGUID(&IID_IClassFactory, riid))
{
/* Pass back our shdocvw class factory */
*ppv = (LPVOID)&SHDOCVW_ClassFactory;
IClassFactory_AddRef((IClassFactory*)&SHDOCVW_ClassFactory);
return S_OK;
}
return CLASS_E_CLASSNOTAVAILABLE;
}
/***********************************************************************
* DllGetVersion (SHDOCVW.113)
*/
HRESULT WINAPI SHDOCVW_DllGetVersion (DLLVERSIONINFO *pdvi)
{
FIXME("(void): stub\n");
return E_NOTIMPL;
return S_FALSE;
}
/*************************************************************************
* DllInstall (SHDOCVW.@)
* DllInstall (SHDOCVW.114)
*/
HRESULT WINAPI SHDOCVW_DllInstall(BOOL bInstall, LPCWSTR cmdline)
{
FIXME("(%s, %s): stub!\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline));
FIXME("(%s, %s): stub!\n", bInstall ? "TRUE":"FALSE", debugstr_w(cmdline));
return E_NOTIMPL;
return S_OK;
}
/***********************************************************************
* DllRegisterServer (SHDOCVW.@)
* DllRegisterServer (SHDOCVW.124)
*/
HRESULT WINAPI SHDOCVW_DllRegisterServer(void)
HRESULT WINAPI SHDOCVW_DllRegisterServer()
{
FIXME("(), stub!\n");
return E_NOTIMPL;
return S_OK;
}
/***********************************************************************
* DllUnregisterServer (SHDOCVW.@)
* DllUnregisterServer (SHDOCVW.127)
*/
HRESULT WINAPI SHDOCVW_DllUnregisterServer(void)
HRESULT WINAPI SHDOCVW_DllUnregisterServer()
{
FIXME("(), stub!\n");
return E_NOTIMPL;
return S_OK;
}
/*
* Implementation of IWebBrowser interface for IE Web Browser control
*
* Copyright 2001 John R. Sheets (for CodeWeavers)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "wine/debug.h"
#include "shdocvw.h"
WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
/**********************************************************************
* Implement the IWebBrowser interface
*/
static HRESULT WINAPI WB_QueryInterface(LPWEBBROWSER iface, REFIID riid, LPVOID *ppobj)
{
ICOM_THIS(IWebBrowserImpl, iface);
FIXME("(%p)->(%s,%p),stub!\n", This, debugstr_guid(riid), ppobj);
return E_NOINTERFACE;
}
static ULONG WINAPI WB_AddRef(LPWEBBROWSER iface)
{
ICOM_THIS(IWebBrowserImpl, iface);
TRACE("\n");
return ++(This->ref);
}
static ULONG WINAPI WB_Release(LPWEBBROWSER iface)
{
ICOM_THIS(IWebBrowserImpl, iface);
/* static class, won't be freed */
TRACE("\n");
return --(This->ref);
}
/* IDispatch methods */
static HRESULT WINAPI WB_GetTypeInfoCount(LPWEBBROWSER iface, UINT *pctinfo)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_GetTypeInfo(LPWEBBROWSER iface, UINT iTInfo, LCID lcid,
LPTYPEINFO *ppTInfo)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_GetIDsOfNames(LPWEBBROWSER iface, REFIID riid,
LPOLESTR *rgszNames, UINT cNames,
LCID lcid, DISPID *rgDispId)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_Invoke(LPWEBBROWSER iface, DISPID dispIdMember,
REFIID riid, LCID lcid, WORD wFlags,
DISPPARAMS *pDispParams, VARIANT *pVarResult,
EXCEPINFO *pExepInfo, UINT *puArgErr)
{
FIXME("stub dispIdMember = %d, IID = %s\n", (int)dispIdMember, debugstr_guid(riid));
return S_OK;
}
/* IWebBrowser methods */
static HRESULT WINAPI WB_GoBack(LPWEBBROWSER iface)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_GoForward(LPWEBBROWSER iface)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_GoHome(LPWEBBROWSER iface)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_GoSearch(LPWEBBROWSER iface)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_Navigate(LPWEBBROWSER iface, BSTR *URL,
VARIANT *Flags, VARIANT *TargetFrameName,
VARIANT *PostData, VARIANT *Headers)
{
FIXME("stub: URL = %p (%p, %p, %p, %p)\n", URL, Flags, TargetFrameName,
PostData, Headers);
return S_OK;
}
static HRESULT WINAPI WB_Refresh(LPWEBBROWSER iface)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_Refresh2(LPWEBBROWSER iface, VARIANT *Level)
{
FIXME("stub: %p\n", Level);
return S_OK;
}
static HRESULT WINAPI WB_Stop(LPWEBBROWSER iface)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Application(LPWEBBROWSER iface, LPVOID *ppDisp)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Parent(LPWEBBROWSER iface, LPVOID *ppDisp)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Container(LPWEBBROWSER iface, LPVOID *ppDisp)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Document(LPWEBBROWSER iface, LPVOID *ppDisp)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_TopLevelContainer(LPWEBBROWSER iface, VARIANT *pBool)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Type(LPWEBBROWSER iface, BSTR *Type)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Left(LPWEBBROWSER iface, long *pl)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_put_Left(LPWEBBROWSER iface, long Left)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Top(LPWEBBROWSER iface, long *pl)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_put_Top(LPWEBBROWSER iface, long Top)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Width(LPWEBBROWSER iface, long *pl)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_put_Width(LPWEBBROWSER iface, long Width)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Height(LPWEBBROWSER iface, long *pl)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_put_Height(LPWEBBROWSER iface, long Height)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_LocationName(LPWEBBROWSER iface, BSTR *LocationName)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_LocationURL(LPWEBBROWSER iface, BSTR *LocationURL)
{
FIXME("stub \n");
return S_OK;
}
static HRESULT WINAPI WB_get_Busy(LPWEBBROWSER iface, VARIANT *pBool)
{
FIXME("stub \n");
return S_OK;
}
/**********************************************************************
* IWebBrowser virtual function table for IE Web Browser component
*/
static ICOM_VTABLE(IWebBrowser) WB_Vtbl =
{
ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
WB_QueryInterface,
WB_AddRef,
WB_Release,
WB_GetTypeInfoCount,
WB_GetTypeInfo,
WB_GetIDsOfNames,
WB_Invoke,
WB_GoBack,
WB_GoForward,
WB_GoHome,
WB_GoSearch,
WB_Navigate,
WB_Refresh,
WB_Refresh2,
WB_Stop,
WB_get_Application,
WB_get_Parent,
WB_get_Container,
WB_get_Document,
WB_get_TopLevelContainer,
WB_get_Type,
WB_get_Left,
WB_put_Left,
WB_get_Top,
WB_put_Top,
WB_get_Width,
WB_put_Width,
WB_get_Height,
WB_put_Height,
WB_get_LocationName,
WB_get_LocationURL,
WB_get_Busy
};
IWebBrowserImpl SHDOCVW_WebBrowser = { &WB_Vtbl, 1 };
......@@ -3,14 +3,11 @@ TOPOBJDIR = ../..
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = urlmon.dll
EXTRALIBS = $(LIBUUID)
LDDLLFLAGS = @LDDLLFLAGS@
SYMBOLFILE = $(MODULE).tmp.o
C_SRCS = \
comimpl.c \
moniker.c \
umon.c \
urlmon_main.c
......
/*
* A basic implementation for COM DLL implementor.
*
* Copyright (C) 2002 Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef WINE_COMIMPL_H
#define WINE_COMIMPL_H
/*
This code provides a basic thread-safe COM implementation
including aggregation(and an IClassFactory implementation).
This code is based on my quartz code.
The usage of this library is:
1) copy comimpl.h and comimpl.c.
2) implement the global class entries 'COMIMPL_ClassList'.
3) export COMIMPL_DllMain, COMIMPL_DllGetClassObject and
COMIMPL_DllCanUnloadNow.
4) add 'comimpl' to your debug channels.
5) implement your IUnknown as a thunk to call
COMIMPL_IUnkImpl.punk methods.
6) provide pointers of vtables in constructor.
7) optionally, you can edit comimpl.h and/or comimpl.c.
A sample allocator of class COne that supports
two interface IOne and ITwo is:
const COMIMPL_CLASSENTRY COMIMPL_ClassList[] =
{
{ &CLSID_COne, &COne_AllocObj },
{ NULL, NULL } << the last entry must be NULL >>
};
typedef struct COne
{
COMIMPL_IUnkImpl vfunk; << must be the first member of this struct >>
struct { ICOM_VFIELD(IOne); } vfone;
struct { ICOM_VFIELD(ITwo); } vftwo;
<< ... >>
} COne;
#define COne_THIS(iface,member) COne* This = ((COne*)(((char*)iface)-offsetof(COne,member)))
static COMIMPL_IFEntry IFEntries[] =
{
<< all supported interfaces >>
{ &IID_IOne, offsetof(COne,vfone)-offsetof(COne,vfunk) },
{ &IID_ITwo, offsetof(COne,vftwo)-offsetof(COne,vfunk) },
};
static void COne_Destructor(IUnknown* iface)
{
COne_THIS(iface,vfunk);
<< ... implement destructor ... >>
}
HRESULT COne_AllocObj(IUnknown* punkOuter,void** ppobj)
{
COne* This;
This = (COne*)COMIMPL_AllocObj( sizeof(COne) );
if ( This == NULL ) return E_OUTOFMEMORY;
COMIMPL_IUnkInit( &This->vfunk, punkOuter );
This->vfunk.pEntries = IFEntries;
This->vfunk.dwEntries = sizeof(IFEntries)/sizeof(IFEntries[0]);
This->vfunk.pOnFinalRelease = COne_Destructor;
ICOM_VTBL(&This->vfone) = &ione;
ICOM_VTBL(&This->vftwo) = &itwo;
<< ... implement constructor ... >>
<< if error occurs in constructing, you can call simply
punk::Release() and return HRESULT. >>
*ppobj = (void*)(&This->vfunk);
return S_OK; << return S_OK if succeeded >>
}
*/
/* if per-thread initialization is needed, uncomment the following line */
/*#define COMIMPL_PERTHREAD_INIT*/
/* If an own heap is needed, customize the following line */
#define COMIMPL_hHeap GetProcessHeap()
typedef HRESULT (*COMIMPL_pCreateIUnknown)(IUnknown* punkOuter,void** ppobj);
typedef void (*COMIMPL_pOnFinalRelease)(IUnknown* punkInner);
typedef struct COMIMPL_IFEntry COMIMPL_IFEntry;
typedef struct COMIMPL_IFDelegation COMIMPL_IFDelegation;
typedef struct COMIMPL_IUnkImpl COMIMPL_IUnkImpl;
struct COMIMPL_IFEntry
{
const IID* piid; /* interface ID. */
size_t ofsVTPtr; /* offset from IUnknown. */
};
struct COMIMPL_IFDelegation
{
struct COMIMPL_IFDelegation* pNext;
HRESULT (*pOnQueryInterface)(
IUnknown* punk, const IID* piid, void** ppobj );
};
/* COMIMPL_IUnkimpl must be aligned for InterlockedExchangeAdd. */
#include <pshpack4.h>
struct COMIMPL_IUnkImpl
{
/* pointer of IUnknown interface. */
ICOM_VFIELD(IUnknown);
/* array of supported IIDs and offsets. */
const COMIMPL_IFEntry* pEntries;
DWORD dwEntries;
/* list of delegation handlers. */
COMIMPL_IFDelegation* pDelegationFirst;
/* called on final release. */
COMIMPL_pOnFinalRelease pOnFinalRelease;
/* IUnknown fields. */
LONG ref;
IUnknown* punkControl;
};
#include <poppack.h>
typedef struct COMIMPL_CLASSENTRY
{
const CLSID* pclsid;
COMIMPL_pCreateIUnknown pCreateIUnk;
} COMIMPL_CLASSENTRY;
extern const COMIMPL_CLASSENTRY COMIMPL_ClassList[]; /* must be provided */
void COMIMPL_IUnkInit( COMIMPL_IUnkImpl* pImpl, IUnknown* punkOuter );
void COMIMPL_IUnkAddDelegationHandler(
COMIMPL_IUnkImpl* pImpl, COMIMPL_IFDelegation* pDelegation );
BOOL WINAPI COMIMPL_DllMain(
HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved );
HRESULT WINAPI COMIMPL_DllGetClassObject(
const CLSID* pclsid,const IID* piid,void** ppv);
HRESULT WINAPI COMIMPL_DllCanUnloadNow(void);
void* COMIMPL_AllocObj( DWORD dwSize );
void COMIMPL_FreeObj( void* pobj ); /* for internal use only. */
#endif /* WINE_COMIMPL_H */
......@@ -48,6 +48,27 @@ HRESULT WINAPI CreateAsyncBindCtxEx(IBindCtx *ibind, DWORD options,
/***********************************************************************
* CreateURLMoniker (URLMON.@)
*
* Create a url moniker
*
* RETURNS
* S_OK success
* E_OUTOFMEMORY out of memory
* MK_E_SYNTAX not a valid url
*
*/
HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
{
TRACE("\n");
if (NULL != pmkContext)
FIXME("Non-null pmkContext not implemented\n");
return CreateFileMoniker(szURL, ppmk);
}
/***********************************************************************
* RegisterBindStatusCallback (URLMON.@)
*
* Register a bind status callback
......@@ -125,7 +146,7 @@ HRESULT WINAPI RevokeBindStatusCallback(
*/
HRESULT WINAPI Extract(DWORD Param1, DWORD Param2)
{
FIXME("%lx %lx\n", Param1, Param2);
TRACE("%lx %lx\n", Param1, Param2);
return E_NOTIMPL;
return S_OK;
}
name urlmon
type win32
init URLMON_DllMain
import ole32.dll
import kernel32.dll
import ntdll.dll
debug_channels (comimpl urlmon)
debug_channels (urlmon win32)
1 stub CDLGetLongPathNameA
2 stub CDLGetLongPathNameW
......@@ -28,7 +26,7 @@ debug_channels (comimpl urlmon)
@ stub CopyStgMedium
@ stub CreateAsyncBindCtx
@ stdcall CreateAsyncBindCtxEx(ptr long ptr ptr ptr long) CreateAsyncBindCtxEx
@ stdcall CreateFormatEnumerator(long ptr ptr) CreateFormatEnumerator
@ stub CreateFormatEnumerator
@ stdcall CreateURLMoniker(ptr str ptr) CreateURLMoniker
@ stdcall DllCanUnloadNow() URLMON_DllCanUnloadNow
@ stdcall DllGetClassObject(ptr ptr ptr) URLMON_DllGetClassObject
......@@ -38,50 +36,50 @@ debug_channels (comimpl urlmon)
@ stdcall DllUnregisterServer() URLMON_DllUnregisterServer
@ stdcall Extract(long long) Extract
@ stub FaultInIEFeature
@ stdcall FindMediaType(str ptr) FindMediaType
@ stdcall FindMediaTypeClass(ptr str ptr long) FindMediaTypeClass
@ stdcall FindMimeFromData(ptr wstr ptr long wstr long ptr long) FindMimeFromData
@ stdcall GetClassFileOrMime(ptr wstr ptr long wstr long ptr) GetClassFileOrMime
@ stdcall GetClassURL(wstr ptr) GetClassURL
@ stub FindMediaType
@ stub FindMediaTypeClass
@ stub FindMimeFromData
@ stub GetClassFileOrMime
@ stub GetClassURL
@ stub GetComponentIDFromCLSSPEC
@ stub GetMarkOfTheWeb
@ stdcall GetSoftwareUpdateInfo(wstr ptr) GetSoftwareUpdateInfo
@ stdcall HlinkGoBack(ptr) HlinkGoBack
@ stdcall HlinkGoForward(ptr) HlinkGoForward
@ stdcall HlinkNavigateMoniker(ptr ptr) HlinkNavigateMoniker
@ stdcall HlinkNavigateString(ptr wstr) HlinkNavigateString
@ stdcall HlinkSimpleNavigateToMoniker(ptr wstr wstr ptr ptr ptr long long) HlinkSimpleNavigateToMoniker
@ stdcall HlinkSimpleNavigateToString(wstr wstr wstr ptr ptr ptr long long) HlinkSimpleNavigateToString
@ stdcall IsAsyncMoniker(ptr) IsAsyncMoniker
@ stdcall IsLoggingEnabledA(str) IsLoggingEnabledA
@ stdcall IsLoggingEnabledW(wstr) IsLoggingEnabledW
@ stdcall IsValidURL(ptr wstr long) IsValidURL
@ stdcall MkParseDisplayNameEx(ptr wstr ptr ptr) MkParseDisplayNameEx
@ stub GetSoftwareUpdateInfo
@ stub HlinkGoBack
@ stub HlinkGoForward
@ stub HlinkNavigateMoniker
@ stub HlinkNavigateString
@ stub HlinkSimpleNavigateToMoniker
@ stub HlinkSimpleNavigateToString
@ stub IsAsyncMoniker
@ stub IsLoggingEnabledA
@ stub IsLoggingEnabledW
@ stub IsValidURL
@ stub MkParseDisplayNameEx
@ stdcall ObtainUserAgentString(long str ptr) ObtainUserAgentString
@ stub PrivateCoInstall
@ stdcall RegisterBindStatusCallback(ptr ptr ptr long) RegisterBindStatusCallback
@ stdcall RegisterFormatEnumerator(ptr ptr long) RegisterFormatEnumerator
@ stdcall RegisterMediaTypeClass(ptr long ptr ptr long) RegisterMediaTypeClass
@ stdcall RegisterMediaTypes(long ptr ptr) RegisterMediaTypes
@ stdcall ReleaseBindInfo(ptr) ReleaseBindInfo
@ stub RegisterFormatEnumerator
@ stub RegisterMediaTypeClass
@ stub RegisterMediaTypes
@ stub ReleaseBindInfo
@ stdcall RevokeBindStatusCallback(ptr ptr) RevokeBindStatusCallback
@ stdcall RevokeFormatEnumerator(ptr ptr) RevokeFormatEnumerator
@ stdcall SetSoftwareUpdateAdvertisementState(wstr long long long) SetSoftwareUpdateAdvertisementState
@ stub RevokeFormatEnumerator
@ stub SetSoftwareUpdateAdvertisementState
@ stub URLDownloadA
@ stdcall URLDownloadToCacheFileA(ptr str ptr long long ptr) URLDownloadToCacheFileA
@ stdcall URLDownloadToCacheFileW(ptr wstr ptr long long ptr) URLDownloadToCacheFileW
@ stdcall URLDownloadToFileA(ptr str str long ptr) URLDownloadToFileA
@ stdcall URLDownloadToFileW(ptr wstr wstr long ptr) URLDownloadToFileW
@ stub URLDownloadToCacheFileA
@ stub URLDownloadToCacheFileW
@ stub URLDownloadToFileA
@ stub URLDownloadToFileW
@ stub URLDownloadW
@ stdcall URLOpenBlockingStreamA(ptr str ptr long ptr) URLOpenBlockingStreamA
@ stdcall URLOpenBlockingStreamW(ptr wstr ptr long ptr) URLOpenBlockingStreamW
@ stdcall URLOpenPullStreamA(ptr str long ptr) URLOpenPullStreamA
@ stdcall URLOpenPullStreamW(ptr wstr long ptr) URLOpenPullStreamW
@ stdcall URLOpenStreamA(ptr str long ptr) URLOpenStreamA
@ stdcall URLOpenStreamW(ptr wstr long ptr) URLOpenStreamW
@ stub URLOpenBlockingStreamA
@ stub URLOpenBlockingStreamW
@ stub URLOpenPullStreamA
@ stub URLOpenPullStreamW
@ stub URLOpenStreamA
@ stub URLOpenStreamW
@ stub UrlMkBuildVersion
@ stdcall UrlMkGetSessionOption(long ptr long ptr long) UrlMkGetSessionOption
@ stub UrlMkGetSessionOption
@ stdcall UrlMkSetSessionOption(long ptr long long) UrlMkSetSessionOption
@ stdcall WriteHitLogging(ptr) WriteHitLogging
@ stub WriteHitLogging
@ stub ZonesReInit
......@@ -21,22 +21,10 @@
#include "windef.h"
#include "winerror.h"
#include "wtypes.h"
#include "ole2.h"
#include "urlmon.h"
#include "comimpl.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
const COMIMPL_CLASSENTRY COMIMPL_ClassList[] =
{
/* list of exported classes */
{ NULL, NULL }
};
WINE_DEFAULT_DEBUG_CHANNEL(win32);
/***********************************************************************
* DllInstall (URLMON.@)
......@@ -50,6 +38,28 @@ HRESULT WINAPI URLMON_DllInstall(BOOL bInstall, LPCWSTR cmdline)
}
/***********************************************************************
* DllCanUnloadNow (URLMON.@)
*/
HRESULT WINAPI URLMON_DllCanUnloadNow(void)
{
FIXME("(void): stub\n");
return S_FALSE;
}
/***********************************************************************
* DllGetClassObject (URLMON.@)
*/
HRESULT WINAPI URLMON_DllGetClassObject(REFCLSID rclsid, REFIID riid,
LPVOID *ppv)
{
FIXME("(%p, %p, %p): stub\n", debugstr_guid(rclsid),
debugstr_guid(riid), ppv);
return CLASS_E_CLASSNOTAVAILABLE;
}
/***********************************************************************
* DllRegisterServer (URLMON.@)
*/
HRESULT WINAPI URLMON_DllRegisterServer(void)
......@@ -108,7 +118,7 @@ HRESULT WINAPI CoInternetGetSession(DWORD dwSessionMode,
ERR("dwReserved: %ld, must be zero\n", dwReserved);
}
return E_NOTIMPL;
return S_OK;
}
......@@ -123,260 +133,5 @@ HRESULT WINAPI ObtainUserAgentString(DWORD dwOption, LPCSTR pcszUAOut, DWORD *cb
ERR("dwOption: %ld, must be zero\n", dwOption);
}
return E_NOTIMPL;
}
/*****************************************************************************
* stubs
*/
typedef struct
{
DWORD dwStructSize;
LPSTR lpszLoggedUrlName;
SYSTEMTIME StartTime;
SYSTEMTIME EndTime;
LPSTR lpszExtendedInfo;
} HIT_LOGGING_INFO;
typedef struct
{
ULONG cbSize;
DWORD dwFlags;
DWORD dwAdState;
LPWSTR szTitle;
LPWSTR szAbstract;
LPWSTR szHREF;
DWORD dwInstalledVersionMS;
DWORD dwInstalledVersionLS;
DWORD dwUpdateVersionMS;
DWORD dwUpdateVersionLS;
DWORD dwAdvertisedVersionMS;
DWORD dwAdvertisedVersionLS;
DWORD dwReserved;
} SOFTDISTINFO;
HRESULT WINAPI CreateFormatEnumerator(UINT cFormatEtcs,FORMATETC* pFormatEtcs,IEnumFORMATETC** ppenum)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI FindMediaType(LPCSTR pszTypes,CLIPFORMAT* pcfTypes)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI FindMediaTypeClass(IBindCtx* pbc,LPCSTR pszType,CLSID* pclsid,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI FindMimeFromData(IBindCtx* pbc,LPCWSTR pwszURL,void* pbuf,DWORD cb,LPCWSTR pwszMimeProposed,DWORD dwMimeFlags,LPWSTR* ppwszMimeOut,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI GetClassFileOrMime(IBindCtx* pbc,LPCWSTR pwszFilename,void* pbuf,DWORD cb,LPCWSTR pwszMime,DWORD dwReserved,CLSID* pclsid)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI GetClassURL(LPCWSTR pwszURL,CLSID* pclsid)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI GetSoftwareUpdateInfo(LPCWSTR pwszDistUnit,SOFTDISTINFO* psdi)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI HlinkGoBack(IUnknown* punk)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI HlinkGoForward(IUnknown* punk)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI HlinkNavigateMoniker(IUnknown* punk,IMoniker* pmonTarget)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI HlinkNavigateString(IUnknown* punk,LPCWSTR szTarget)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI HlinkSimpleNavigateToMoniker(
IMoniker* pmonTarget,LPCWSTR pwszLocation,LPCWSTR pwszTargetFrame,
IUnknown* punk,IBindCtx* pbc,IBindStatusCallback* pbscb,
DWORD dwHLNF,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI HlinkSimpleNavigateToString(
LPCWSTR pwszTarget,LPCWSTR pwszLocation,LPCWSTR pwszTargetFrame,
IUnknown* punk,IBindCtx* pbc,IBindStatusCallback* pbscb,
DWORD dwHLNF,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI IsAsyncMoniker(IMoniker* pmon)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
BOOL WINAPI IsLoggingEnabledA(LPCSTR pszURL)
{
FIXME("() stub\n");
return FALSE;
}
BOOL WINAPI IsLoggingEnabledW(LPCWSTR pwszURL)
{
FIXME("() stub\n");
return FALSE;
}
HRESULT WINAPI IsValidURL(IBindCtx* pbc,LPCWSTR pwszURL,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI MkParseDisplayNameEx(IBindCtx* pbc,LPCWSTR pwszDisplayName,ULONG* pulCharEaten,IMoniker** ppmon)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI RegisterFormatEnumerator(IBindCtx* pbc,IEnumFORMATETC* penum,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI RegisterMediaTypeClass(IBindCtx* pbc,UINT cTypes,const LPCSTR* pszTypes,CLSID* pclsid,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI RegisterMediaTypes(UINT cTypes,const LPCSTR* pszTypes,CLIPFORMAT* pcfTypes)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
void WINAPI ReleaseBindInfo(BINDINFO* pbi)
{
FIXME("() stub\n");
}
HRESULT WINAPI RevokeFormatEnumerator(IBindCtx* pbc,IEnumFORMATETC* penum)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI SetSoftwareUpdateAdvertisementState(LPCWSTR pwszDistUnit,DWORD dwAdvState,DWORD dwAdvVerMS,DWORD dwAdvVerLS)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLDownloadToCacheFileA(IUnknown* punk,LPCSTR pszURL,LPSTR pszNameBuf,DWORD dwNameBufLen,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLDownloadToCacheFileW(IUnknown* punk,LPCWSTR pwszURL,LPWSTR pwszNameBuf,DWORD dwNameBufLen,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLDownloadToFileA(IUnknown* punk,LPCSTR pszURL,LPCSTR pszFileName,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLDownloadToFileW(IUnknown* punk,LPCWSTR pwszURL,LPCWSTR pwszFileName,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLOpenBlockingStreamA(IUnknown* punk,LPCSTR pszURL,IStream** ppstream,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLOpenBlockingStreamW(IUnknown* punk,LPCWSTR pwszURL,IStream** ppstream,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLOpenPullStreamA(IUnknown* punk,LPCSTR pszURL,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLOpenPullStreamW(IUnknown* punk,LPCWSTR pwszURL,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLOpenStreamA(IUnknown* punk,LPCSTR pszURL,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI URLOpenStreamW(IUnknown* punk,LPCWSTR pwszURL,DWORD dwReserved,IBindStatusCallback* pbscb)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
HRESULT WINAPI UrlMkGetSessionOption(DWORD dwOpt,void* pvBuf,DWORD dwBufLen,DWORD* pdwLen,DWORD dwReserved)
{
FIXME("() stub\n");
return E_NOTIMPL;
}
BOOL WINAPI WriteHitLogging(HIT_LOGGING_INFO* pli)
{
FIXME("() stub\n");
return FALSE;
return S_OK;
}
......@@ -33,7 +33,6 @@
#include "winmm_Es.rc"
#include "winmm_Ru.rc"
#include "winmm_Sk.rc"
#include "winmm_Ja.rc"
/* do not add NLS specific stuff below that line */
......
......@@ -8,7 +8,4 @@ vcr=mcivisca.drv
MPEGVideo=mciqtz.drv
[drivers32]
VIDC.MRLE=msrle32.dll
msacm.msg711=msg711.drv
msacm.imaadp32=imaadp32.acm
......@@ -33,7 +33,6 @@ INSTALLED_INCLUDES = \
dplobby.h \
dshow.h \
dsound.h \
dvdmedia.h \
guiddef.h \
imagehlp.h \
imm.h \
......@@ -155,7 +154,6 @@ INSTALLED_INCLUDES = \
wine/obj_errorinfo.h \
wine/obj_extracticon.h \
wine/obj_inplace.h \
wine/obj_ksproperty.h \
wine/obj_marshal.h \
wine/obj_misc.h \
wine/obj_moniker.h \
......
......@@ -22,7 +22,6 @@
#include "winbase.h" /* for CRITICAL_SECTION */
#include "mmsystem.h"
#include "d3dtypes.h"
#include "wine/obj_ksproperty.h"
#ifdef __cplusplus
extern "C" {
......@@ -56,6 +55,10 @@ typedef struct IDirectSoundCaptureBuffer IDirectSoundCaptureBuffer,*LPDIRECTSOUN
DEFINE_GUID(DSDEVID_WinePlayback, 0x40316A1D,0x605B,0xD611,0x87,0xC6,0x00,0x80,0xAD,0x00,0x02,0xFE);
DEFINE_GUID(IID_IKsPropertySet, 0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
typedef struct IKsPropertySet IKsPropertySet,*LPKSPROPERTYSET;
#define _FACDS 0x878
#define MAKE_DSHRESULT(code) MAKE_HRESULT(1,_FACDS,code)
......@@ -570,6 +573,29 @@ ICOM_DEFINE(IDirectSound3DBuffer,IUnknown)
#define IDirectSound3DBuffer_SetPosition(p,a,b,c,d) ICOM_CALL4(SetPosition,p,a,b,c,d)
#define IDirectSound3DBuffer_SetVelocity(p,a,b,c,d) ICOM_CALL4(SetVelocity,p,a,b,c,d)
/*****************************************************************************
* IKsPropertySet interface
*/
#define KSPROPERTY_SUPPORT_GET 1
#define KSPROPERTY_SUPPORT_SET 2
#define ICOM_INTERFACE IKsPropertySet
#define IKsPropertySet_METHODS \
ICOM_METHOD7(HRESULT,Get,REFGUID,rgid,ULONG,x1,LPVOID,p1,ULONG,x2,LPVOID,p2,ULONG,x3,ULONG*,px4);\
ICOM_METHOD6(HRESULT,Set,REFGUID,rgid,ULONG,x1,LPVOID,p1,ULONG,x2,LPVOID,p2,ULONG,x3);\
ICOM_METHOD3(HRESULT,QuerySupport,REFGUID,rgid,ULONG,x1,ULONG*,px2);
#define IKsPropertySet_IMETHODS \
IUnknown_IMETHODS \
IKsPropertySet_METHODS
ICOM_DEFINE(IKsPropertySet,IUnknown)
#undef ICOM_INTERFACE
#define IKsPropertySet_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IKsPropertySet_AddRef(p) ICOM_CALL (AddRef,p)
#define IKsPropertySet_Release(p) ICOM_CALL (Release,p)
#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) ICOM_CALL7(Get,p,a,b,c,d,e,f,g)
#define IKsPropertySet_Set(p,a,b,c,d,e,f) ICOM_CALL6(Set,p,a,b,c,d,e,f)
#define IKsPropertySet_QuerySupport(p,a,b,c) ICOM_CALL3(QuerySupport,p,a,b,c)
#ifdef __cplusplus
......
/*
* Copyright (C) 2002 Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_DVDMEDIA_H_
#define __WINE_DVDMEDIA_H_
/* enums. */
enum AM_MPEG2Level
{
AM_MPEG2Level_Low = 1,
AM_MPEG2Level_Main = 2,
AM_MPEG2Level_High1440 = 3,
AM_MPEG2Level_High = 4,
};
enum AM_MPEG2Profile
{
AM_MPEG2Profile_Simple = 1,
AM_MPEG2Profile_Main = 2,
AM_MPEG2Profile_SNRScalable = 3,
AM_MPEG2Profile_SpatiallyScalable = 4,
AM_MPEG2Profile_High = 5,
};
/* structs. */
typedef struct
{
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
DWORD dwReserved1;
DWORD dwReserved2;
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER2;
typedef struct
{
VIDEOINFOHEADER2 hdr;
DWORD dwStartTimeCode;
DWORD cbSequenceHeader;
DWORD dwProfile;
DWORD dwLevel;
DWORD dwFlags;
DWORD dwSequenceHeader[1];
} MPEG2VIDEOINFO;
/* defines. */
#define AMINTERLACE_IsInterlaced 0x00000001
#define AMINTERLACE_1FieldPerSample 0x00000002
#define AMINTERLACE_Field1First 0x00000004
#define AMINTERLACE_FieldPatternMask 0x00000030
#define AMINTERLACE_FieldPatField1Only 0x00000000
#define AMINTERLACE_FieldPatField2Only 0x00000010
#define AMINTERLACE_FieldPatBothRegular 0x00000020
#define AMINTERLACE_FieldPatBothIrregular 0x00000030
#define AMINTERLACE_DisplayModeMask 0x000000C0
#define AMINTERLACE_DisplayModeBobOnly 0x00000000
#define AMINTERLACE_DisplayModeWeaveOnly 0x00000040
#define AMINTERLACE_DisplayModeBobOrWeave 0x00000080
#define AMCOPYPROTECT_RestrictDuplication 0x1
#define AMMPEG2_DoPanScan 0x00000001
#define AMMPEG2_DVDLine21Field1 0x00000002
#define AMMPEG2_DVDLine21Field2 0x00000004
#define AMMPEG2_SourceIsLetterboxed 0x00000008
#define AMMPEG2_FilmCameraMode 0x00000010
#define AMMPEG2_LetterboxAnalogOut 0x00000020
#endif /* __WINE_DVDMEDIA_H_ */
/*
* Copyright (C) 2001 Hidenori Takeshima
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef WINE_WINE_OBJ_KSPROPERTY_H
#define WINE_WINE_OBJ_KSPROPERTY_H
/* NOTE: IKsPropertySet is declared in both dsound.h and strmif.h */
DEFINE_GUID(IID_IKsPropertySet, 0x31EFAC30,0x515C,0x11D0,0xA9,0xAA,0x00,0xAA,0x00,0x61,0xBE,0x93);
typedef struct IKsPropertySet IKsPropertySet,*LPKSPROPERTYSET;
/*****************************************************************************
* IKsPropertySet interface
*/
#define KSPROPERTY_SUPPORT_GET 1
#define KSPROPERTY_SUPPORT_SET 2
#define ICOM_INTERFACE IKsPropertySet
#define IKsPropertySet_METHODS \
ICOM_METHOD7(HRESULT,Get,REFGUID,rgid,ULONG,x1,LPVOID,p1,ULONG,x2,LPVOID,p2,ULONG,x3,ULONG*,px4);\
ICOM_METHOD6(HRESULT,Set,REFGUID,rgid,ULONG,x1,LPVOID,p1,ULONG,x2,LPVOID,p2,ULONG,x3);\
ICOM_METHOD3(HRESULT,QuerySupport,REFGUID,rgid,ULONG,x1,ULONG*,px2);
#define IKsPropertySet_IMETHODS \
IUnknown_IMETHODS \
IKsPropertySet_METHODS
ICOM_DEFINE(IKsPropertySet,IUnknown)
#undef ICOM_INTERFACE
#define IKsPropertySet_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
#define IKsPropertySet_AddRef(p) ICOM_CALL (AddRef,p)
#define IKsPropertySet_Release(p) ICOM_CALL (Release,p)
#define IKsPropertySet_Get(p,a,b,c,d,e,f,g) ICOM_CALL7(Get,p,a,b,c,d,e,f,g)
#define IKsPropertySet_Set(p,a,b,c,d,e,f) ICOM_CALL6(Set,p,a,b,c,d,e,f)
#define IKsPropertySet_QuerySupport(p,a,b,c) ICOM_CALL3(QuerySupport,p,a,b,c)
/* The real windows header declares 'QuerySupport' in dsound.h */
/* but 'QuerySupported' in strmif.h ! */
#define IKsPropertySet_QuerySupported(p,a,b,c) ICOM_CALL3(QuerySupport,p,a,b,c)
#endif /* WINE_WINE_OBJ_KSPROPERTY_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment