ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
September 2008
----- 2025 -----
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
27 participants
747 discussions
Start a n
N
ew thread
[cwittich] 36114: sync fusion.dll with wine 1.1.4
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 03:47:30 2008 New Revision: 36114 URL:
http://svn.reactos.org/svn/reactos?rev=36114&view=rev
Log: sync fusion.dll with wine 1.1.4 Added: trunk/reactos/dll/win32/fusion/ (with props) trunk/reactos/dll/win32/fusion/asmcache.c (with props) trunk/reactos/dll/win32/fusion/asmname.c (with props) trunk/reactos/dll/win32/fusion/assembly.c (with props) trunk/reactos/dll/win32/fusion/fusion.c (with props) trunk/reactos/dll/win32/fusion/fusion.rbuild (with props) trunk/reactos/dll/win32/fusion/fusion.spec (with props) trunk/reactos/dll/win32/fusion/fusion_main.c (with props) trunk/reactos/dll/win32/fusion/fusion_ros.diff (with props) trunk/reactos/dll/win32/fusion/fusionpriv.h (with props) Modified: trunk/reactos/baseaddress.rbuild trunk/reactos/boot/bootdata/packages/reactos.dff trunk/reactos/dll/win32/win32.rbuild Modified: trunk/reactos/baseaddress.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/baseaddress.rbuild?rev=361…
============================================================================== --- trunk/reactos/baseaddress.rbuild [iso-8859-1] (original) +++ trunk/reactos/baseaddress.rbuild [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -187,6 +187,7 @@ <property name="BASEADDRESS_MSVCRT20" value="0x78500000" /> <property name="BASEADDRESS_MSVCRT40" value="0x78700000" /> <property name="BASEADDRESS_MSCOREE" value="0x79000000" /> + <property name="BASEADDRESS_FUSION" value="0x79040000" /> <property name="BASEADDRESS_KERNEL32" value="0x7c800000" /> <property name="BASEADDRESS_NTDLL" value="0x7c900000" /> <property name="BASEADDRESS_HHCTRL" value="0x7e410000" /> Modified: trunk/reactos/boot/bootdata/packages/reactos.dff URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/packages/rea…
============================================================================== --- trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -252,6 +252,7 @@ dll\win32\dhcpcsvc\dhcpcsvc.dll 1 dll\win32\dnsapi\dnsapi.dll 1 dll\win32\fmifs\fmifs.dll 1 +dll\win32\fusion\fusion.dll 1 dll\win32\gdi32\gdi32.dll 1 dll\win32\gdiplus\gdiplus.dll 1 dll\win32\glu32\glu32.dll 1 Propchange: trunk/reactos/dll/win32/fusion/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Wed Sep 10 03:47:30 2008 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: trunk/reactos/dll/win32/fusion/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: trunk/reactos/dll/win32/fusion/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/win32/fusion/ ------------------------------------------------------------------------------ tsvn:logminsize = 10 Added: trunk/reactos/dll/win32/fusion/asmcache.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/asmcache.…
============================================================================== --- trunk/reactos/dll/win32/fusion/asmcache.c (added) +++ trunk/reactos/dll/win32/fusion/asmcache.c [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,476 @@ +/* + * IAssemblyCache implementation + * + * Copyright 2008 James Hawkins + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> +#include <stdio.h> + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winver.h" +#include "wincrypt.h" +#include "winreg.h" +#include "shlwapi.h" +#include "dbghelp.h" +#include "ole2.h" +#include "fusion.h" +#include "corerror.h" + +#include "fusionpriv.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(fusion); + +static BOOL create_full_path(LPCSTR path) +{ + LPSTR new_path; + BOOL ret = TRUE; + int len; + + new_path = HeapAlloc(GetProcessHeap(), 0, lstrlenA(path) + 1); + if (!new_path) + return FALSE; + + lstrcpyA(new_path, path); + + while ((len = lstrlenA(new_path)) && new_path[len - 1] == '\\') + new_path[len - 1] = 0; + + while (!CreateDirectoryA(new_path, NULL)) + { + LPSTR slash; + DWORD last_error = GetLastError(); + + if(last_error == ERROR_ALREADY_EXISTS) + break; + + if(last_error != ERROR_PATH_NOT_FOUND) + { + ret = FALSE; + break; + } + + if(!(slash = strrchr(new_path, '\\'))) + { + ret = FALSE; + break; + } + + len = slash - new_path; + new_path[len] = 0; + if(!create_full_path(new_path)) + { + ret = FALSE; + break; + } + + new_path[len] = '\\'; + } + + HeapFree(GetProcessHeap(), 0, new_path); + return ret; +} + +/* IAssemblyCache */ + +typedef struct { + const IAssemblyCacheVtbl *lpIAssemblyCacheVtbl; + + LONG ref; +} IAssemblyCacheImpl; + +static HRESULT WINAPI IAssemblyCacheImpl_QueryInterface(IAssemblyCache *iface, + REFIID riid, LPVOID *ppobj) +{ + IAssemblyCacheImpl *This = (IAssemblyCacheImpl *)iface; + + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppobj); + + *ppobj = NULL; + + if (IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAssemblyCache)) + { + IUnknown_AddRef(iface); + *ppobj = This; + return S_OK; + } + + WARN("(%p, %s, %p): not found\n", This, debugstr_guid(riid), ppobj); + return E_NOINTERFACE; +} + +static ULONG WINAPI IAssemblyCacheImpl_AddRef(IAssemblyCache *iface) +{ + IAssemblyCacheImpl *This = (IAssemblyCacheImpl *)iface; + ULONG refCount = InterlockedIncrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount - 1); + + return refCount; +} + +static ULONG WINAPI IAssemblyCacheImpl_Release(IAssemblyCache *iface) +{ + IAssemblyCacheImpl *This = (IAssemblyCacheImpl *)iface; + ULONG refCount = InterlockedDecrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount + 1); + + if (!refCount) + HeapFree(GetProcessHeap(), 0, This); + + return refCount; +} + +static HRESULT WINAPI IAssemblyCacheImpl_UninstallAssembly(IAssemblyCache *iface, + DWORD dwFlags, + LPCWSTR pszAssemblyName, + LPCFUSION_INSTALL_REFERENCE pRefData, + ULONG *pulDisposition) +{ + FIXME("(%p, %d, %s, %p, %p) stub!\n", iface, dwFlags, + debugstr_w(pszAssemblyName), pRefData, pulDisposition); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyCacheImpl_QueryAssemblyInfo(IAssemblyCache *iface, + DWORD dwFlags, + LPCWSTR pszAssemblyName, + ASSEMBLY_INFO *pAsmInfo) +{ + FIXME("(%p, %d, %s, %p) stub!\n", iface, dwFlags, + debugstr_w(pszAssemblyName), pAsmInfo); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyCacheImpl_CreateAssemblyCacheItem(IAssemblyCache *iface, + DWORD dwFlags, + PVOID pvReserved, + IAssemblyCacheItem **ppAsmItem, + LPCWSTR pszAssemblyName) +{ + FIXME("(%p, %d, %p, %p, %s) stub!\n", iface, dwFlags, pvReserved, + ppAsmItem, debugstr_w(pszAssemblyName)); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyCacheImpl_CreateAssemblyScavenger(IAssemblyCache *iface, + IUnknown **ppUnkReserved) +{ + FIXME("(%p, %p) stub!\n", iface, ppUnkReserved); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyCacheImpl_InstallAssembly(IAssemblyCache *iface, + DWORD dwFlags, + LPCWSTR pszManifestFilePath, + LPCFUSION_INSTALL_REFERENCE pRefData) +{ + ASSEMBLY *assembly; + LPSTR filename; + LPSTR name = NULL; + LPSTR token = NULL; + LPSTR version = NULL; + LPSTR asmpath = NULL; + CHAR path[MAX_PATH]; + CHAR windir[MAX_PATH]; + LPWSTR ext; + HRESULT hr; + + static const WCHAR ext_exe[] = {'.','e','x','e',0}; + static const WCHAR ext_dll[] = {'.','d','l','l',0}; + + TRACE("(%p, %d, %s, %p)\n", iface, dwFlags, + debugstr_w(pszManifestFilePath), pRefData); + + if (!pszManifestFilePath || !*pszManifestFilePath) + return E_INVALIDARG; + + if (!(ext = strrchrW(pszManifestFilePath, '.'))) + return HRESULT_FROM_WIN32(ERROR_INVALID_NAME); + + if (lstrcmpiW(ext, ext_exe) && lstrcmpiW(ext, ext_dll)) + return HRESULT_FROM_WIN32(ERROR_INVALID_NAME); + + if (GetFileAttributesW(pszManifestFilePath) == INVALID_FILE_ATTRIBUTES) + return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND); + + hr = assembly_create(&assembly, pszManifestFilePath); + if (FAILED(hr)) + { + hr = COR_E_ASSEMBLYEXPECTED; + goto done; + } + + hr = assembly_get_name(assembly, &name); + if (FAILED(hr)) + goto done; + + hr = assembly_get_pubkey_token(assembly, &token); + if (FAILED(hr)) + goto done; + + hr = assembly_get_version(assembly, &version); + if (FAILED(hr)) + goto done; + + GetWindowsDirectoryA(windir, MAX_PATH); + + FIXME("Ignoring assembly architecture!\n"); + + sprintf(path, "%s\\assembly\\GAC_MSIL\\%s\\%s__%s\\", windir, name, + version, token); + + create_full_path(path); + + hr = assembly_get_path(assembly, &asmpath); + if (FAILED(hr)) + goto done; + + filename = PathFindFileNameA(asmpath); + + lstrcatA(path, filename); + if (!CopyFileA(asmpath, path, FALSE)) + hr = HRESULT_FROM_WIN32(GetLastError()); + +done: + HeapFree(GetProcessHeap(), 0, name); + HeapFree(GetProcessHeap(), 0, token); + HeapFree(GetProcessHeap(), 0, version); + HeapFree(GetProcessHeap(), 0, asmpath); + assembly_release(assembly); + return hr; +} + +static const IAssemblyCacheVtbl AssemblyCacheVtbl = { + IAssemblyCacheImpl_QueryInterface, + IAssemblyCacheImpl_AddRef, + IAssemblyCacheImpl_Release, + IAssemblyCacheImpl_UninstallAssembly, + IAssemblyCacheImpl_QueryAssemblyInfo, + IAssemblyCacheImpl_CreateAssemblyCacheItem, + IAssemblyCacheImpl_CreateAssemblyScavenger, + IAssemblyCacheImpl_InstallAssembly +}; + +/****************************************************************** + * CreateAssemblyCache (FUSION.@) + */ +HRESULT WINAPI CreateAssemblyCache(IAssemblyCache **ppAsmCache, DWORD dwReserved) +{ + IAssemblyCacheImpl *cache; + + TRACE("(%p, %d)\n", ppAsmCache, dwReserved); + + if (!ppAsmCache) + return E_INVALIDARG; + + *ppAsmCache = NULL; + + cache = HeapAlloc(GetProcessHeap(), 0, sizeof(IAssemblyCacheImpl)); + if (!cache) + return E_OUTOFMEMORY; + + cache->lpIAssemblyCacheVtbl = &AssemblyCacheVtbl; + cache->ref = 1; + + *ppAsmCache = (IAssemblyCache *)cache; + + return S_OK; +} + +/* IAssemblyCacheItem */ + +typedef struct { + const IAssemblyCacheItemVtbl *lpIAssemblyCacheItemVtbl; + + LONG ref; +} IAssemblyCacheItemImpl; + +static HRESULT WINAPI IAssemblyCacheItemImpl_QueryInterface(IAssemblyCacheItem *iface, + REFIID riid, LPVOID *ppobj) +{ + IAssemblyCacheItemImpl *This = (IAssemblyCacheItemImpl *)iface; + + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppobj); + + *ppobj = NULL; + + if (IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAssemblyCacheItem)) + { + IUnknown_AddRef(iface); + *ppobj = This; + return S_OK; + } + + WARN("(%p, %s, %p): not found\n", This, debugstr_guid(riid), ppobj); + return E_NOINTERFACE; +} + +static ULONG WINAPI IAssemblyCacheItemImpl_AddRef(IAssemblyCacheItem *iface) +{ + IAssemblyCacheItemImpl *This = (IAssemblyCacheItemImpl *)iface; + ULONG refCount = InterlockedIncrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount - 1); + + return refCount; +} + +static ULONG WINAPI IAssemblyCacheItemImpl_Release(IAssemblyCacheItem *iface) +{ + IAssemblyCacheItemImpl *This = (IAssemblyCacheItemImpl *)iface; + ULONG refCount = InterlockedDecrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount + 1); + + if (!refCount) + HeapFree(GetProcessHeap(), 0, This); + + return refCount; +} + +static HRESULT WINAPI IAssemblyCacheItemImpl_CreateStream(IAssemblyCacheItem *iface, + DWORD dwFlags, + LPCWSTR pszStreamName, + DWORD dwFormat, + DWORD dwFormatFlags, + IStream **ppIStream, + ULARGE_INTEGER *puliMaxSize) +{ + FIXME("(%p, %d, %s, %d, %d, %p, %p) stub!\n", iface, dwFlags, + debugstr_w(pszStreamName), dwFormat, dwFormatFlags, ppIStream, puliMaxSize); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyCacheItemImpl_Commit(IAssemblyCacheItem *iface, + DWORD dwFlags, + ULONG *pulDisposition) +{ + FIXME("(%p, %d, %p) stub!\n", iface, dwFlags, pulDisposition); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyCacheItemImpl_AbortItem(IAssemblyCacheItem *iface) +{ + FIXME("(%p) stub!\n", iface); + return E_NOTIMPL; +} + +static const IAssemblyCacheItemVtbl AssemblyCacheItemVtbl = { + IAssemblyCacheItemImpl_QueryInterface, + IAssemblyCacheItemImpl_AddRef, + IAssemblyCacheItemImpl_Release, + IAssemblyCacheItemImpl_CreateStream, + IAssemblyCacheItemImpl_Commit, + IAssemblyCacheItemImpl_AbortItem +}; + +/* IAssemblyEnum */ + +typedef struct { + const IAssemblyEnumVtbl *lpIAssemblyEnumVtbl; + + LONG ref; +} IAssemblyEnumImpl; + +static HRESULT WINAPI IAssemblyEnumImpl_QueryInterface(IAssemblyEnum *iface, + REFIID riid, LPVOID *ppobj) +{ + IAssemblyEnumImpl *This = (IAssemblyEnumImpl *)iface; + + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppobj); + + *ppobj = NULL; + + if (IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAssemblyEnum)) + { + IUnknown_AddRef(iface); + *ppobj = This; + return S_OK; + } + + WARN("(%p, %s, %p): not found\n", This, debugstr_guid(riid), ppobj); + return E_NOINTERFACE; +} + +static ULONG WINAPI IAssemblyEnumImpl_AddRef(IAssemblyEnum *iface) +{ + IAssemblyEnumImpl *This = (IAssemblyEnumImpl *)iface; + ULONG refCount = InterlockedIncrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount - 1); + + return refCount; +} + +static ULONG WINAPI IAssemblyEnumImpl_Release(IAssemblyEnum *iface) +{ + IAssemblyEnumImpl *This = (IAssemblyEnumImpl *)iface; + ULONG refCount = InterlockedDecrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount + 1); + + if (!refCount) + HeapFree(GetProcessHeap(), 0, This); + + return refCount; +} + +static HRESULT WINAPI IAssemblyEnumImpl_GetNextAssembly(IAssemblyEnum *iface, + LPVOID pvReserved, + IAssemblyName **ppName, + DWORD dwFlags) +{ + FIXME("(%p, %p, %p, %d) stub!\n", iface, pvReserved, ppName, dwFlags); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyEnumImpl_Reset(IAssemblyEnum *iface) +{ + FIXME("(%p) stub!\n", iface); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyEnumImpl_Clone(IAssemblyEnum *iface, + IAssemblyEnum **ppEnum) +{ + FIXME("(%p, %p) stub!\n", iface, ppEnum); + return E_NOTIMPL; +} + +static const IAssemblyEnumVtbl AssemblyEnumVtbl = { + IAssemblyEnumImpl_QueryInterface, + IAssemblyEnumImpl_AddRef, + IAssemblyEnumImpl_Release, + IAssemblyEnumImpl_GetNextAssembly, + IAssemblyEnumImpl_Reset, + IAssemblyEnumImpl_Clone +}; Propchange: trunk/reactos/dll/win32/fusion/asmcache.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/asmname.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/asmname.c…
============================================================================== --- trunk/reactos/dll/win32/fusion/asmname.c (added) +++ trunk/reactos/dll/win32/fusion/asmname.c [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,525 @@ +/* + * IAssemblyName implementation + * + * Copyright 2008 James Hawkins + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> + +#define COBJMACROS +#define INITGUID + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "guiddef.h" +#include "fusion.h" +#include "corerror.h" + +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(fusion); + +static inline LPWSTR strdupW(LPCWSTR src) +{ + LPWSTR dest; + + if (!src) + return NULL; + + dest = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(src) + 1) * sizeof(WCHAR)); + if (dest) + lstrcpyW(dest, src); + + return dest; +} + +typedef struct { + const IAssemblyNameVtbl *lpIAssemblyNameVtbl; + + LPWSTR displayname; + LPWSTR name; + LPWSTR culture; + + BYTE version[4]; + DWORD versize; + + BYTE pubkey[8]; + BOOL haspubkey; + + LONG ref; +} IAssemblyNameImpl; + +static HRESULT WINAPI IAssemblyNameImpl_QueryInterface(IAssemblyName *iface, + REFIID riid, LPVOID *ppobj) +{ + IAssemblyNameImpl *This = (IAssemblyNameImpl *)iface; + + TRACE("(%p, %s, %p)\n", This, debugstr_guid(riid), ppobj); + + *ppobj = NULL; + + if (IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IAssemblyName)) + { + IUnknown_AddRef(iface); + *ppobj = This; + return S_OK; + } + + WARN("(%p, %s, %p): not found\n", This, debugstr_guid(riid), ppobj); + return E_NOINTERFACE; +} + +static ULONG WINAPI IAssemblyNameImpl_AddRef(IAssemblyName *iface) +{ + IAssemblyNameImpl *This = (IAssemblyNameImpl *)iface; + ULONG refCount = InterlockedIncrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount - 1); + + return refCount; +} + +static ULONG WINAPI IAssemblyNameImpl_Release(IAssemblyName *iface) +{ + IAssemblyNameImpl *This = (IAssemblyNameImpl *)iface; + ULONG refCount = InterlockedDecrement(&This->ref); + + TRACE("(%p)->(ref before = %u)\n", This, refCount + 1); + + if (!refCount) + { + HeapFree(GetProcessHeap(), 0, This->displayname); + HeapFree(GetProcessHeap(), 0, This->name); + HeapFree(GetProcessHeap(), 0, This->culture); + HeapFree(GetProcessHeap(), 0, This); + } + + return refCount; +} + +static HRESULT WINAPI IAssemblyNameImpl_SetProperty(IAssemblyName *iface, + DWORD PropertyId, + LPVOID pvProperty, + DWORD cbProperty) +{ + FIXME("(%p, %d, %p, %d) stub!\n", iface, PropertyId, pvProperty, cbProperty); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyNameImpl_GetProperty(IAssemblyName *iface, + DWORD PropertyId, + LPVOID pvProperty, + LPDWORD pcbProperty) +{ + IAssemblyNameImpl *name = (IAssemblyNameImpl *)iface; + + TRACE("(%p, %d, %p, %p)\n", iface, PropertyId, pvProperty, pcbProperty); + + *((LPWSTR)pvProperty) = '\0'; + + switch (PropertyId) + { + case ASM_NAME_NULL_PUBLIC_KEY: + case ASM_NAME_NULL_PUBLIC_KEY_TOKEN: + if (name->haspubkey) + return S_OK; + return S_FALSE; + + case ASM_NAME_NULL_CUSTOM: + return S_OK; + + case ASM_NAME_NAME: + *pcbProperty = 0; + if (name->name) + { + lstrcpyW((LPWSTR)pvProperty, name->name); + *pcbProperty = (lstrlenW(name->name) + 1) * 2; + } + break; + + case ASM_NAME_MAJOR_VERSION: + *pcbProperty = 0; + *((LPDWORD)pvProperty) = name->version[0]; + if (name->versize >= 1) + *pcbProperty = sizeof(WORD); + break; + + case ASM_NAME_MINOR_VERSION: + *pcbProperty = 0; + *((LPDWORD)pvProperty) = name->version[1]; + if (name->versize >= 2) + *pcbProperty = sizeof(WORD); + break; + + case ASM_NAME_BUILD_NUMBER: + *pcbProperty = 0; + *((LPDWORD)pvProperty) = name->version[2]; + if (name->versize >= 3) + *pcbProperty = sizeof(WORD); + break; + + case ASM_NAME_REVISION_NUMBER: + *pcbProperty = 0; + *((LPDWORD)pvProperty) = name->version[3]; + if (name->versize >= 4) + *pcbProperty = sizeof(WORD); + break; + + case ASM_NAME_CULTURE: + *pcbProperty = 0; + if (name->culture) + { + lstrcpyW((LPWSTR)pvProperty, name->culture); + *pcbProperty = (lstrlenW(name->culture) + 1) * 2; + } + break; + + case ASM_NAME_PUBLIC_KEY_TOKEN: + *pcbProperty = 0; + if (name->haspubkey) + { + memcpy(pvProperty, name->pubkey, sizeof(DWORD) * 2); + *pcbProperty = sizeof(DWORD) * 2; + } + break; + + default: + *pcbProperty = 0; + break; + } + + return S_OK; +} + +static HRESULT WINAPI IAssemblyNameImpl_Finalize(IAssemblyName *iface) +{ + FIXME("(%p) stub!\n", iface); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyNameImpl_GetDisplayName(IAssemblyName *iface, + LPOLESTR szDisplayName, + LPDWORD pccDisplayName, + DWORD dwDisplayFlags) +{ + IAssemblyNameImpl *name = (IAssemblyNameImpl *)iface; + + TRACE("(%p, %s, %p, %d)\n", iface, debugstr_w(szDisplayName), + pccDisplayName, dwDisplayFlags); + + if (!name->displayname || !*name->displayname) + return FUSION_E_INVALID_NAME; + + lstrcpyW(szDisplayName, name->displayname); + *pccDisplayName = lstrlenW(szDisplayName) + 1; + + return S_OK; +} + +static HRESULT WINAPI IAssemblyNameImpl_Reserved(IAssemblyName *iface, + REFIID refIID, + IUnknown *pUnkReserved1, + IUnknown *pUnkReserved2, + LPCOLESTR szReserved, + LONGLONG llReserved, + LPVOID pvReserved, + DWORD cbReserved, + LPVOID *ppReserved) +{ + TRACE("(%p, %s, %p, %p, %s, %x%08x, %p, %d, %p)\n", iface, + debugstr_guid(refIID), pUnkReserved1, pUnkReserved2, + debugstr_w(szReserved), (DWORD)(llReserved >> 32), (DWORD)llReserved, + pvReserved, cbReserved, ppReserved); + + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyNameImpl_GetName(IAssemblyName *iface, + LPDWORD lpcwBuffer, + WCHAR *pwzName) +{ + IAssemblyNameImpl *name = (IAssemblyNameImpl *)iface; + + TRACE("(%p, %p, %p)\n", iface, lpcwBuffer, pwzName); + + if (!name->name) + { + *pwzName = '\0'; + *lpcwBuffer = 0; + return S_OK; + } + + lstrcpyW(pwzName, name->name); + *lpcwBuffer = lstrlenW(pwzName) + 1; + + return S_OK; +} + +static HRESULT WINAPI IAssemblyNameImpl_GetVersion(IAssemblyName *iface, + LPDWORD pdwVersionHi, + LPDWORD pdwVersionLow) +{ + IAssemblyNameImpl *name = (IAssemblyNameImpl *)iface; + + TRACE("(%p, %p, %p)\n", iface, pdwVersionHi, pdwVersionLow); + + *pdwVersionHi = 0; + *pdwVersionLow = 0; + + if (name->versize != 4) + return FUSION_E_INVALID_NAME; + + *pdwVersionHi = (name->version[0] << 16) + name->version[1]; + *pdwVersionLow = (name->version[2] << 16) + name->version[3]; + + return S_OK; +} + +static HRESULT WINAPI IAssemblyNameImpl_IsEqual(IAssemblyName *iface, + IAssemblyName *pName, + DWORD dwCmpFlags) +{ + FIXME("(%p, %p, %d) stub!\n", iface, pName, dwCmpFlags); + return E_NOTIMPL; +} + +static HRESULT WINAPI IAssemblyNameImpl_Clone(IAssemblyName *iface, + IAssemblyName **pName) +{ + FIXME("(%p, %p) stub!\n", iface, pName); + return E_NOTIMPL; +} + +static const IAssemblyNameVtbl AssemblyNameVtbl = { + IAssemblyNameImpl_QueryInterface, + IAssemblyNameImpl_AddRef, + IAssemblyNameImpl_Release, + IAssemblyNameImpl_SetProperty, + IAssemblyNameImpl_GetProperty, + IAssemblyNameImpl_Finalize, + IAssemblyNameImpl_GetDisplayName, + IAssemblyNameImpl_Reserved, + IAssemblyNameImpl_GetName, + IAssemblyNameImpl_GetVersion, + IAssemblyNameImpl_IsEqual, + IAssemblyNameImpl_Clone +}; + +static HRESULT parse_version(IAssemblyNameImpl *name, LPWSTR version) +{ + LPWSTR beg, end; + int i; + + for (i = 0, beg = version; i < 4; i++) + { + if (!*beg) + return S_OK; + + end = strchrW(beg, '.'); + + if (end) *end = '\0'; + name->version[i] = atolW(beg); + name->versize++; + + if (!end && i < 3) + return S_OK; + + beg = end + 1; + } + + return S_OK; +} + +static HRESULT parse_culture(IAssemblyNameImpl *name, LPWSTR culture) +{ + static const WCHAR empty[] = {0}; + + if (lstrlenW(culture) == 2) + name->culture = strdupW(culture); + else + name->culture = strdupW(empty); + + return S_OK; +} + +#define CHARS_PER_PUBKEY 16 + +static BOOL is_hex(WCHAR c) +{ + return ((c >= 'a' && c <= 'f') || + (c >= 'A' && c <= 'F') || + (c >= '0' && c <= '9')); +} + +static BYTE hextobyte(WCHAR c) +{ + if(c >= '0' && c <= '9') + return c - '0'; + if(c >= 'A' && c <= 'F') + return c - 'A' + 10; + if(c >= 'a' && c <= 'f') + return c - 'a' + 10; + return 0; +} + +static HRESULT parse_pubkey(IAssemblyNameImpl *name, LPWSTR pubkey) +{ + int i; + BYTE val; + + if (lstrlenW(pubkey) < CHARS_PER_PUBKEY) + return FUSION_E_INVALID_NAME; + + for (i = 0; i < CHARS_PER_PUBKEY; i++) + if (!is_hex(pubkey[i])) + return FUSION_E_INVALID_NAME; + + name->haspubkey = TRUE; + + for (i = 0; i < CHARS_PER_PUBKEY; i += 2) + { + val = (hextobyte(pubkey[i]) << 4) + hextobyte(pubkey[i + 1]); + name->pubkey[i / 2] = val; + } + + return S_OK; +} + +static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyName) +{ + LPWSTR str, save; + LPWSTR ptr, ptr2; + HRESULT hr = S_OK; + BOOL done = FALSE; + + static const WCHAR separator[] = {',',' ',0}; + static const WCHAR version[] = {'V','e','r','s','i','o','n',0}; + static const WCHAR culture[] = {'C','u','l','t','u','r','e',0}; + static const WCHAR pubkey[] = + {'P','u','b','l','i','c','K','e','y','T','o','k','e','n',0}; + + if (!szAssemblyName) + return S_OK; + + name->displayname = strdupW(szAssemblyName); + if (!name->displayname) + return E_OUTOFMEMORY; + + str = strdupW(szAssemblyName); + save = str; + if (!str) + return E_OUTOFMEMORY; + + ptr = strstrW(str, separator); + if (ptr) *ptr = '\0'; + name->name = strdupW(str); + if (!name->name) + return E_OUTOFMEMORY; + + if (!ptr) + goto done; + + str = ptr + 2; + while (!done) + { + ptr = strchrW(str, '='); + if (!ptr) + { + hr = FUSION_E_INVALID_NAME; + goto done; + } + + *(ptr++) = '\0'; + if (!*ptr) + { + hr = FUSION_E_INVALID_NAME; + goto done; + } + + if (!(ptr2 = strstrW(ptr, separator))) + { + if (!(ptr2 = strchrW(ptr, '\0'))) + { + hr = FUSION_E_INVALID_NAME; + goto done; + } + + done = TRUE; + } + + *ptr2 = '\0'; + + if (!lstrcmpW(str, version)) + hr = parse_version(name, ptr); + else if (!lstrcmpW(str, culture)) + hr = parse_culture(name, ptr); + else if (!lstrcmpW(str, pubkey)) + hr = parse_pubkey(name, ptr); + + if (FAILED(hr)) + goto done; + + str = ptr2 + 1; + } + +done: + HeapFree(GetProcessHeap(), 0, save); + return hr; +} + +/****************************************************************** + * CreateAssemblyNameObject (FUSION.@) + */ +HRESULT WINAPI CreateAssemblyNameObject(LPASSEMBLYNAME *ppAssemblyNameObj, + LPCWSTR szAssemblyName, DWORD dwFlags, + LPVOID pvReserved) +{ + IAssemblyNameImpl *name; + HRESULT hr; + + TRACE("(%p, %s, %08x, %p) stub!\n", ppAssemblyNameObj, + debugstr_w(szAssemblyName), dwFlags, pvReserved); + + if (!ppAssemblyNameObj) + return E_INVALIDARG; + + if ((dwFlags & CANOF_PARSE_DISPLAY_NAME) && + (!szAssemblyName || !*szAssemblyName)) + return E_INVALIDARG; + + name = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IAssemblyNameImpl)); + if (!name) + return E_OUTOFMEMORY; + + name->lpIAssemblyNameVtbl = &AssemblyNameVtbl; + name->ref = 1; + + hr = parse_display_name(name, szAssemblyName); + if (FAILED(hr)) + { + HeapFree(GetProcessHeap(), 0, name); + return hr; + } + + *ppAssemblyNameObj = (IAssemblyName *)name; + + return S_OK; +} Propchange: trunk/reactos/dll/win32/fusion/asmname.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/assembly.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/assembly.…
============================================================================== --- trunk/reactos/dll/win32/fusion/assembly.c (added) +++ trunk/reactos/dll/win32/fusion/assembly.c [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,938 @@ +/* + * assembly parser + * + * Copyright 2008 James Hawkins + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> +#include <stdio.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "winver.h" +#include "wincrypt.h" +#include "dbghelp.h" +#include "ole2.h" +#include "fusion.h" +#include "corhdr.h" + +#include "fusionpriv.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +#define TableFromToken(tk) (TypeFromToken(tk) >> 24) +#define TokenFromTable(idx) (idx << 24) + +#define MAX_CLR_TABLES 64 + +#define MD_STRINGS_BIT 0x1 +#define MD_GUIDS_BIT 0x2 +#define MD_BLOBS_BIT 0x4 + +typedef struct tagCLRTABLE +{ + INT rows; + DWORD offset; +} CLRTABLE; + +struct tagASSEMBLY +{ + LPSTR path; + + HANDLE hfile; + HANDLE hmap; + BYTE *data; + + IMAGE_NT_HEADERS *nthdr; + IMAGE_COR20_HEADER *corhdr; + + METADATAHDR *metadatahdr; + + METADATATABLESHDR *tableshdr; + DWORD numtables; + DWORD *numrows; + CLRTABLE tables[MAX_CLR_TABLES]; + + DWORD stringsz; + DWORD guidsz; + DWORD blobsz; + + BYTE *strings; + BYTE *blobs; +}; + +static LPSTR strdupWtoA(LPCWSTR str) +{ + LPSTR ret = NULL; + DWORD len; + + if (!str) + return ret; + + len = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL); + ret = HeapAlloc(GetProcessHeap(), 0, len); + if (ret) + WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len, NULL, NULL); + + return ret; +} + +static DWORD rva_to_offset(IMAGE_NT_HEADERS *nthdrs, DWORD rva) +{ + DWORD offset = rva, limit; + IMAGE_SECTION_HEADER *img; + WORD i; + + img = IMAGE_FIRST_SECTION(nthdrs); + + if (rva < img->PointerToRawData) + return rva; + + for (i = 0; i < nthdrs->FileHeader.NumberOfSections; i++) + { + if (img[i].SizeOfRawData) + limit = img[i].SizeOfRawData; + else + limit = img[i].Misc.VirtualSize; + + if (rva >= img[i].VirtualAddress && + rva < (img[i].VirtualAddress + limit)) + { + if (img[i].PointerToRawData != 0) + { + offset -= img[i].VirtualAddress; + offset += img[i].PointerToRawData; + } + + return offset; + } + } + + return 0; +} + +static BYTE *GetData(BYTE *pData, ULONG *pLength) +{ + if ((*pData & 0x80) == 0x00) + { + *pLength = (*pData & 0x7f); + return pData + 1; + } + + if ((*pData & 0xC0) == 0x80) + { + *pLength = ((*pData & 0x3f) << 8 | *(pData + 1)); + return pData + 2; + } + + if ((*pData & 0xE0) == 0xC0) + { + *pLength = ((*pData & 0x1f) << 24 | *(pData + 1) << 16 | + *(pData + 2) << 8 | *(pData + 3)); + return pData + 4; + } + + *pLength = (ULONG)-1; + return 0; +} + +static VOID *assembly_data_offset(ASSEMBLY *assembly, ULONG offset) +{ + return (VOID *)&assembly->data[offset]; +} + +#define MAX_TABLES_WORD 0xFFFF +#define MAX_TABLES_1BIT_ENCODE 32767 +#define MAX_TABLES_2BIT_ENCODE 16383 +#define MAX_TABLES_3BIT_ENCODE 8191 +#define MAX_TABLES_5BIT_ENCODE 2047 + +static inline ULONG get_table_size(ASSEMBLY *assembly, DWORD index) +{ + DWORD size; + INT tables; + + switch (TokenFromTable(index)) + { + case mdtModule: + { + size = sizeof(MODULETABLE) + (assembly->stringsz - sizeof(WORD)) + + 2 * (assembly->guidsz - sizeof(WORD)); + break; + } + case mdtTypeRef: + { + size = sizeof(TYPEREFTABLE) + 2 * (assembly->stringsz - sizeof(WORD)); + + /* ResolutionScope:ResolutionScope */ + tables = max(assembly->tables[TableFromToken(mdtModule)].rows, + assembly->tables[TableFromToken(mdtModuleRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtAssemblyRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeRef)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case mdtTypeDef: + { + size = sizeof(TYPEDEFTABLE) + 2 * (assembly->stringsz - sizeof(WORD)); + + /* Extends:TypeDefOrRef */ + tables = max(assembly->tables[TableFromToken(mdtTypeDef)].rows, + assembly->tables[TableFromToken(mdtTypeRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeSpec)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + + size += (assembly->tables[TableFromToken(mdtFieldDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + size += (assembly->tables[TableFromToken(mdtMethodDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtFieldDef: + { + size = sizeof(FIELDTABLE) + (assembly->stringsz - sizeof(WORD)) + + (assembly->blobsz - sizeof(WORD)); + break; + } + case mdtMethodDef: + { + size = sizeof(METHODDEFTABLE) + (assembly->stringsz - sizeof(WORD)) + + (assembly->blobsz - sizeof(WORD)); + + size += (assembly->tables[TableFromToken(mdtParamDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtParamDef: + { + size = sizeof(PARAMTABLE) + (assembly->stringsz - sizeof(WORD)); + break; + } + case mdtInterfaceImpl: + { + size = sizeof(INTERFACEIMPLTABLE); + + /* Interface:TypeDefOrRef */ + tables = max(assembly->tables[TableFromToken(mdtTypeDef)].rows, + assembly->tables[TableFromToken(mdtTypeRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeSpec)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case mdtMemberRef: + { + size = sizeof(MEMBERREFTABLE) + (assembly->stringsz - sizeof(WORD)) + + (assembly->blobsz - sizeof(WORD)); + + /* Class:MemberRefParent */ + tables = max(assembly->tables[TableFromToken(mdtTypeRef)].rows, + assembly->tables[TableFromToken(mdtModuleRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtMethodDef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeSpec)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeDef)].rows); + size += (tables > MAX_TABLES_3BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case 0x0B000000: /* FIXME */ + { + size = sizeof(CONSTANTTABLE) + (assembly->blobsz - sizeof(WORD)); + + /* Parent:HasConstant */ + tables = max(assembly->tables[TableFromToken(mdtParamDef)].rows, + assembly->tables[TableFromToken(mdtFieldDef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtProperty)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case mdtCustomAttribute: + { + size = sizeof(CUSTOMATTRIBUTETABLE) + (assembly->blobsz - sizeof(WORD)); + + /* Parent:HasCustomAttribute */ + tables = max(assembly->tables[TableFromToken(mdtMethodDef)].rows, + assembly->tables[TableFromToken(mdtFieldDef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeDef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtParamDef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtInterfaceImpl)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtMemberRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtPermission)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtProperty)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtEvent)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtSignature)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtModuleRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeSpec)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtAssembly)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtFile)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtExportedType)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtManifestResource)].rows); + size += (tables > MAX_TABLES_5BIT_ENCODE) ? sizeof(WORD) : 0; + + /* Type:CustomAttributeType */ + tables = max(assembly->tables[TableFromToken(mdtMethodDef)].rows, + assembly->tables[TableFromToken(mdtMemberRef)].rows); + size += (tables > MAX_TABLES_3BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case 0x0D000000: /* FIXME */ + { + size = sizeof(FIELDMARSHALTABLE) + (assembly->blobsz - sizeof(WORD)); + + /* Parent:HasFieldMarshal */ + tables = max(assembly->tables[TableFromToken(mdtFieldDef)].rows, + assembly->tables[TableFromToken(mdtParamDef)].rows); + size += (tables > MAX_TABLES_1BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case mdtPermission: + { + size = sizeof(DECLSECURITYTABLE) + (assembly->blobsz - sizeof(WORD)); + + /* Parent:HasDeclSecurity */ + tables = max(assembly->tables[TableFromToken(mdtTypeDef)].rows, + assembly->tables[TableFromToken(mdtMethodDef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtAssembly)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case 0x0F000000: /* FIXME */ + { + size = sizeof(CLASSLAYOUTTABLE); + size += (assembly->tables[TableFromToken(mdtTypeDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case 0x10000000: /* FIXME */ + { + size = sizeof(FIELDLAYOUTTABLE); + size += (assembly->tables[TableFromToken(mdtFieldDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtSignature: + { + size = sizeof(STANDALONESIGTABLE) + (assembly->blobsz - sizeof(WORD)); + break; + } + case 0x12000000: /* FIXME */ + { + size = sizeof(EVENTMAPTABLE); + size += (assembly->tables[TableFromToken(mdtTypeDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + size += (assembly->tables[TableFromToken(mdtEvent)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtEvent: + { + size = sizeof(EVENTTABLE) + (assembly->stringsz - sizeof(WORD)); + + /* EventType:TypeDefOrRef */ + tables = max(assembly->tables[TableFromToken(mdtTypeDef)].rows, + assembly->tables[TableFromToken(mdtTypeRef)].rows); + tables = max(tables, assembly->tables[TableFromToken(mdtTypeSpec)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case 0x15000000:/* FIXME */ + { + size = sizeof(PROPERTYMAPTABLE); + size += (assembly->tables[TableFromToken(mdtTypeDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + size += (assembly->tables[TableFromToken(mdtProperty)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtProperty: + { + size = sizeof(PROPERTYTABLE) + (assembly->stringsz - sizeof(WORD)) + + (assembly->blobsz - sizeof(WORD)); + break; + } + case 0x18000000: /* FIXME */ + { + size = sizeof(METHODSEMANTICSTABLE); + + /* Association:HasSemantics */ + tables = max(assembly->tables[TableFromToken(mdtEvent)].rows, + assembly->tables[TableFromToken(mdtProperty)].rows); + size += (tables > MAX_TABLES_1BIT_ENCODE) ? sizeof(WORD) : 0; + + size += (assembly->tables[TableFromToken(mdtMethodDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case 0x19000000: /* FIXME */ + { + size = sizeof(METHODIMPLTABLE); + + /* MethodBody:MethodDefOrRef, MethodDeclaration:MethodDefOrRef */ + tables = max(assembly->tables[TableFromToken(mdtMethodDef)].rows, + assembly->tables[TableFromToken(mdtMemberRef)].rows); + size += (tables > MAX_TABLES_1BIT_ENCODE) ? 2 * sizeof(WORD) : 0; + + size += (assembly->tables[TableFromToken(mdtTypeDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtModuleRef: + { + size = sizeof(MODULEREFTABLE) + (assembly->stringsz - sizeof(WORD)); + break; + } + case mdtTypeSpec: + { + size = sizeof(TYPESPECTABLE) + (assembly->blobsz - sizeof(WORD)); + break; + } + case 0x1C000000: /* FIXME */ + { + size = sizeof(IMPLMAPTABLE) + (assembly->stringsz - sizeof(WORD)); + + /* MemberForwarded:MemberForwarded */ + tables = max(assembly->tables[TableFromToken(mdtFieldDef)].rows, + assembly->tables[TableFromToken(mdtMethodDef)].rows); + size += (tables > MAX_TABLES_1BIT_ENCODE) ? sizeof(WORD) : 0; + + size += (assembly->tables[TableFromToken(mdtModuleRef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case 0x1D000000: /* FIXME */ + { + size = sizeof(FIELDRVATABLE); + size += (assembly->tables[TableFromToken(mdtFieldDef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtAssembly: + { + size = sizeof(ASSEMBLYTABLE) + 2 * (assembly->stringsz - sizeof(WORD)) + + (assembly->blobsz - sizeof(WORD)); + break; + } + case 0x20000001: /* FIXME */ + { + size = sizeof(ASSEMBLYPROCESSORTABLE); + break; + } + case 0x22000000: /* FIXME */ + { + size = sizeof(ASSEMBLYOSTABLE); + break; + } + case mdtAssemblyRef: + { + size = sizeof(ASSEMBLYREFTABLE) + 2 * (assembly->stringsz - sizeof(WORD)) + + 2 * (assembly->blobsz - sizeof(WORD)); + break; + } + case 0x24000000: /* FIXME */ + { + size = sizeof(ASSEMBLYREFPROCESSORTABLE); + size += (assembly->tables[TableFromToken(mdtAssemblyRef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case 0x25000000: /* FIXME */ + { + size = sizeof(ASSEMBLYREFOSTABLE); + size += (assembly->tables[TableFromToken(mdtAssemblyRef)].rows > + MAX_TABLES_WORD) ? sizeof(WORD) : 0; + break; + } + case mdtFile: + { + size = sizeof(FILETABLE) + (assembly->stringsz - sizeof(WORD)) + + (assembly->blobsz - sizeof(WORD)); + break; + } + case mdtExportedType: + { + size = sizeof(EXPORTEDTYPETABLE) + 2 * (assembly->stringsz - sizeof(WORD)); + + /* Implementation:Implementation */ + tables = max(assembly->tables[TableFromToken(mdtFile)].rows, + assembly->tables[TableFromToken(mdtMethodDef)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case mdtManifestResource: + { + size = sizeof(MANIFESTRESTABLE) + (assembly->stringsz - sizeof(WORD)); + + /* Implementation:Implementation */ + tables = max(assembly->tables[TableFromToken(mdtFile)].rows, + assembly->tables[TableFromToken(mdtAssemblyRef)].rows); + size += (tables > MAX_TABLES_2BIT_ENCODE) ? sizeof(WORD) : 0; + break; + } + case 0x29000000: /* FIXME */ + { + size = sizeof(NESTEDCLASSTABLE); + size += (assembly->tables[TableFromToken(mdtTypeDef)].rows > + MAX_TABLES_WORD) ? 2 * sizeof(WORD) : 0; + break; + } + default: + return 0; + } + + return size; +} + +static HRESULT parse_clr_tables(ASSEMBLY *assembly, ULONG offset) +{ + DWORD i, previ, offidx; + ULONG currofs; + + currofs = offset; + assembly->tableshdr = (METADATATABLESHDR *)assembly_data_offset(assembly, currofs); + if (!assembly->tableshdr) + return E_FAIL; + + assembly->stringsz = (assembly->tableshdr->HeapOffsetSizes & MD_STRINGS_BIT) ? + sizeof(DWORD) : sizeof(WORD); + assembly->guidsz = (assembly->tableshdr->HeapOffsetSizes & MD_GUIDS_BIT) ? + sizeof(DWORD) : sizeof(WORD); + assembly->blobsz = (assembly->tableshdr->HeapOffsetSizes & MD_BLOBS_BIT) ? + sizeof(DWORD) : sizeof(WORD); + + currofs += sizeof(METADATATABLESHDR); + assembly->numrows = (DWORD *)assembly_data_offset(assembly, currofs); + if (!assembly->numrows) + return E_FAIL; + + assembly->numtables = 0; + for (i = 0; i < MAX_CLR_TABLES; i++) + { + if ((i < 32 && (assembly->tableshdr->MaskValid.u.LowPart >> i) & 1) || + (i >= 32 && (assembly->tableshdr->MaskValid.u.HighPart >> i) & 1)) + { + assembly->numtables++; + } + } + + currofs += assembly->numtables * sizeof(DWORD); + memset(assembly->tables, -1, MAX_CLR_TABLES * sizeof(CLRTABLE)); + + if (assembly->tableshdr->MaskValid.u.LowPart & 1) + assembly->tables[0].offset = currofs; + + offidx = 0; + for (i = 0; i < MAX_CLR_TABLES; i++) + { + if ((i < 32 && (assembly->tableshdr->MaskValid.u.LowPart >> i) & 1) || + (i >= 32 && (assembly->tableshdr->MaskValid.u.HighPart >> i) & 1)) + { + assembly->tables[i].rows = assembly->numrows[offidx]; + offidx++; + } + } + + previ = 0; + offidx = 1; + for (i = 1; i < MAX_CLR_TABLES; i++) + { + if ((i < 32 && (assembly->tableshdr->MaskValid.u.LowPart >> i) & 1) || + (i >= 32 && (assembly->tableshdr->MaskValid.u.HighPart >> i) & 1)) + { + currofs += get_table_size(assembly, previ) * assembly->numrows[offidx - 1]; + assembly->tables[i].offset = currofs; + offidx++; + previ = i; + } + } + + return S_OK; +} + +static HRESULT parse_metadata_header(ASSEMBLY *assembly, DWORD *hdrsz) +{ + METADATAHDR *metadatahdr; + BYTE *ptr, *dest; + DWORD size, ofs; + ULONG rva; + + rva = assembly->corhdr->MetaData.VirtualAddress; + ptr = ImageRvaToVa(assembly->nthdr, assembly->data, rva, NULL); + if (!ptr) + return E_FAIL; + + metadatahdr = (METADATAHDR *)ptr; + + assembly->metadatahdr = HeapAlloc(GetProcessHeap(), 0, sizeof(METADATAHDR)); + if (!assembly->metadatahdr) + return E_OUTOFMEMORY; + + size = FIELD_OFFSET(METADATAHDR, Version); + memcpy(assembly->metadatahdr, metadatahdr, size); + + /* we don't care about the version string */ + + ofs = FIELD_OFFSET(METADATAHDR, Flags); + ptr += FIELD_OFFSET(METADATAHDR, Version) + metadatahdr->VersionLength + 1; + dest = (BYTE *)assembly->metadatahdr + ofs; + memcpy(dest, ptr, sizeof(METADATAHDR) - ofs); + + *hdrsz = sizeof(METADATAHDR) - sizeof(LPSTR) + metadatahdr->VersionLength + 1; + + return S_OK; +} + +static HRESULT parse_clr_metadata(ASSEMBLY *assembly) +{ + METADATASTREAMHDR *streamhdr; + ULONG rva, i, ofs; + LPSTR stream; + HRESULT hr; + DWORD hdrsz; + BYTE *ptr; + + hr = parse_metadata_header(assembly, &hdrsz); + if (FAILED(hr)) + return hr; + + rva = assembly->corhdr->MetaData.VirtualAddress; + ptr = ImageRvaToVa(assembly->nthdr, assembly->data, rva + hdrsz, NULL); + if (!ptr) + return E_FAIL; + + for (i = 0; i < assembly->metadatahdr->Streams; i++) + { + streamhdr = (METADATASTREAMHDR *)ptr; + ofs = rva_to_offset(assembly->nthdr, rva + streamhdr->Offset); + + ptr += sizeof(METADATASTREAMHDR); + stream = (LPSTR)ptr; + + if (!lstrcmpA(stream, "#~")) + { + hr = parse_clr_tables(assembly, ofs); + if (FAILED(hr)) + return hr; + } + else if (!lstrcmpA(stream, "#Strings") || !lstrcmpA(stream, "Strings")) + assembly->strings = (BYTE *)assembly_data_offset(assembly, ofs); + else if (!lstrcmpA(stream, "#Blob") || !lstrcmpA(stream, "Blob")) + assembly->blobs = (BYTE *)assembly_data_offset(assembly, ofs); + + ptr += lstrlenA(stream) + 1; + ptr = (BYTE *)(((UINT_PTR)ptr + 3) & ~3); /* align on DWORD boundary */ + } + + return S_OK; +} + +static HRESULT parse_pe_header(ASSEMBLY *assembly) +{ + IMAGE_DATA_DIRECTORY *datadirs; + + assembly->nthdr = ImageNtHeader(assembly->data); + if (!assembly->nthdr) + return E_FAIL; + + if (assembly->nthdr->FileHeader.Machine == IMAGE_FILE_MACHINE_AMD64) + { + IMAGE_OPTIONAL_HEADER64 *opthdr = + (IMAGE_OPTIONAL_HEADER64 *)&assembly->nthdr->OptionalHeader; + datadirs = opthdr->DataDirectory; + } + else + datadirs = assembly->nthdr->OptionalHeader.DataDirectory; + + if (!datadirs) + return E_FAIL; + + if (!datadirs[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress || + !datadirs[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].Size) + { + return E_FAIL; + } + + assembly->corhdr = ImageRvaToVa(assembly->nthdr, assembly->data, + datadirs[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress, NULL); + if (!assembly->corhdr) + return E_FAIL; + + return S_OK; +} + +HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file) +{ + ASSEMBLY *assembly; + HRESULT hr; + + *out = NULL; + + assembly = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ASSEMBLY)); + if (!assembly) + return E_OUTOFMEMORY; + + assembly->path = strdupWtoA(file); + if (!assembly->path) + { + hr = E_OUTOFMEMORY; + goto failed; + } + + assembly->hfile = CreateFileW(file, GENERIC_READ, FILE_SHARE_READ, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if (assembly->hfile == INVALID_HANDLE_VALUE) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto failed; + } + + assembly->hmap = CreateFileMappingW(assembly->hfile, NULL, PAGE_READONLY, + 0, 0, NULL); + if (!assembly->hmap) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto failed; + } + + assembly->data = MapViewOfFile(assembly->hmap, FILE_MAP_READ, 0, 0, 0); + if (!assembly->data) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto failed; + } + + hr = parse_pe_header(assembly); + if (FAILED(hr)) goto failed; + + hr = parse_clr_metadata(assembly); + if (FAILED(hr)) goto failed; + + *out = assembly; + return S_OK; + +failed: + assembly_release(assembly); + return hr; +} + +HRESULT assembly_release(ASSEMBLY *assembly) +{ + if (!assembly) + return S_OK; + + HeapFree(GetProcessHeap(), 0, assembly->metadatahdr); + HeapFree(GetProcessHeap(), 0, assembly->path); + UnmapViewOfFile(assembly->data); + CloseHandle(assembly->hmap); + CloseHandle(assembly->hfile); + HeapFree(GetProcessHeap(), 0, assembly); + + return S_OK; +} + +static LPSTR assembly_dup_str(ASSEMBLY *assembly, DWORD index) +{ + LPSTR str = (LPSTR)&assembly->strings[index]; + LPSTR cpy = HeapAlloc(GetProcessHeap(), 0, strlen(str)+1); + if (cpy) + strcpy(cpy, str); + return cpy; +} + +HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name) +{ + BYTE *ptr; + LONG offset; + DWORD stridx; + + offset = assembly->tables[TableFromToken(mdtAssembly)].offset; + if (offset == -1) + return E_FAIL; + + ptr = assembly_data_offset(assembly, offset); + if (!ptr) + return E_FAIL; + + ptr += FIELD_OFFSET(ASSEMBLYTABLE, PublicKey) + assembly->blobsz; + if (assembly->stringsz == sizeof(DWORD)) + stridx = *((DWORD *)ptr); + else + stridx = *((WORD *)ptr); + + *name = assembly_dup_str(assembly, stridx); + if (!*name) + return E_OUTOFMEMORY; + + return S_OK; +} + +HRESULT assembly_get_path(ASSEMBLY *assembly, LPSTR *path) +{ + LPSTR cpy = HeapAlloc(GetProcessHeap(), 0, strlen(assembly->path)+1); + *path = cpy; + if (cpy) + strcpy(cpy, assembly->path); + else + return E_OUTOFMEMORY; + + return S_OK; +} + +HRESULT assembly_get_version(ASSEMBLY *assembly, LPSTR *version) +{ + LPSTR verdata; + VS_FIXEDFILEINFO *ffi; + HRESULT hr = S_OK; + DWORD size; + + size = GetFileVersionInfoSizeA(assembly->path, NULL); + if (!size) + return HRESULT_FROM_WIN32(GetLastError()); + + verdata = HeapAlloc(GetProcessHeap(), 0, size); + if (!verdata) + return E_OUTOFMEMORY; + + if (!GetFileVersionInfoA(assembly->path, 0, size, verdata)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto done; + } + + if (!VerQueryValueA(verdata, "\\", (LPVOID *)&ffi, &size)) + { + hr = HRESULT_FROM_WIN32(GetLastError()); + goto done; + } + + *version = HeapAlloc(GetProcessHeap(), 0, MAX_PATH); + if (!*version) + { + hr = E_OUTOFMEMORY; + goto done; + } + + sprintf(*version, "%d.%d.%d.%d", HIWORD(ffi->dwFileVersionMS), + LOWORD(ffi->dwFileVersionMS), HIWORD(ffi->dwFileVersionLS), + LOWORD(ffi->dwFileVersionLS)); + +done: + HeapFree(GetProcessHeap(), 0, verdata); + return hr; +} + +HRESULT assembly_get_architecture(ASSEMBLY *assembly, DWORD fixme) +{ + /* FIXME */ + return S_OK; +} + +static BYTE *assembly_get_blob(ASSEMBLY *assembly, WORD index, ULONG *size) +{ + return GetData(&assembly->blobs[index], size); +} + +static void bytes_to_str(BYTE *bytes, DWORD len, LPSTR str) +{ + DWORD i; + + static const char hexval[16] = { + '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' + }; + + for(i = 0; i < len; i++) + { + str[i * 2] = hexval[((bytes[i] >> 4) & 0xF)]; + str[i * 2 + 1] = hexval[(bytes[i]) & 0x0F]; + } +} + +#define BYTES_PER_TOKEN 8 +#define CHARS_PER_BYTE 2 +#define TOKEN_LENGTH (BYTES_PER_TOKEN * CHARS_PER_BYTE + 1) + +HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPSTR *token) +{ + ASSEMBLYTABLE *asmtbl; + ULONG i, size; + LONG offset; + BYTE *hashdata; + HCRYPTPROV crypt; + HCRYPTHASH hash; + BYTE *pubkey; + BYTE tokbytes[BYTES_PER_TOKEN]; + HRESULT hr = E_FAIL; + LPSTR tok; + + *token = NULL; + + offset = assembly->tables[TableFromToken(mdtAssembly)].offset; + if (offset == -1) + return E_FAIL; + + asmtbl = (ASSEMBLYTABLE *)assembly_data_offset(assembly, offset); + if (!asmtbl) + return E_FAIL; + + pubkey = assembly_get_blob(assembly, asmtbl->PublicKey, &size); + + if (!CryptAcquireContextA(&crypt, NULL, NULL, PROV_RSA_FULL, + CRYPT_VERIFYCONTEXT)) + return E_FAIL; + + if (!CryptCreateHash(crypt, CALG_SHA1, 0, 0, &hash)) + return E_FAIL; + + if (!CryptHashData(hash, pubkey, size, 0)) + return E_FAIL; + + size = 0; + if (!CryptGetHashParam(hash, HP_HASHVAL, NULL, &size, 0)) + return E_FAIL; + + hashdata = HeapAlloc(GetProcessHeap(), 0, size); + if (!hashdata) + { + hr = E_OUTOFMEMORY; + goto done; + } + + if (!CryptGetHashParam(hash, HP_HASHVAL, hashdata, &size, 0)) + goto done; + + for (i = size - 1; i >= size - 8; i--) + tokbytes[size - i - 1] = hashdata[i]; + + tok = HeapAlloc(GetProcessHeap(), 0, TOKEN_LENGTH); + if (!tok) + { + hr = E_OUTOFMEMORY; + goto done; + } + + bytes_to_str(tokbytes, BYTES_PER_TOKEN, tok); + tok[TOKEN_LENGTH - 1] = '\0'; + + *token = tok; + hr = S_OK; + +done: + HeapFree(GetProcessHeap(), 0, hashdata); + CryptDestroyHash(hash); + CryptReleaseContext(crypt, 0); + + return hr; +} Propchange: trunk/reactos/dll/win32/fusion/assembly.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/fusion.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/fusion.c?…
============================================================================== --- trunk/reactos/dll/win32/fusion/fusion.c (added) +++ trunk/reactos/dll/win32/fusion/fusion.c [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,186 @@ +/* + * Implementation of the Fusion API + * + * Copyright 2008 James Hawkins + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include <stdarg.h> + +#define COBJMACROS + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" +#include "ole2.h" +#include "fusion.h" +#include "wine/debug.h" +#include "wine/unicode.h" + +WINE_DEFAULT_DEBUG_CHANNEL(fusion); + +/****************************************************************** + * ClearDownloadCache (FUSION.@) + */ +HRESULT WINAPI ClearDownloadCache(void) +{ + FIXME("stub!\n"); + return E_NOTIMPL; +} + +/****************************************************************** + * CompareAssemblyIdentity (FUSION.@) + */ +HRESULT WINAPI CompareAssemblyIdentity(LPCWSTR pwzAssemblyIdentity1, BOOL fUnified1, + LPCWSTR pwzAssemblyIdentity2, BOOL fUnified2, + BOOL *pfEquivalent, AssemblyComparisonResult *pResult) +{ + FIXME("(%s, %d, %s, %d, %p, %p) stub!\n", debugstr_w(pwzAssemblyIdentity1), + fUnified1, debugstr_w(pwzAssemblyIdentity2), fUnified2, pfEquivalent, pResult); + + return E_NOTIMPL; +} + +/****************************************************************** + * CreateAssemblyEnum (FUSION.@) + */ +HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum **pEnum, IUnknown *pUnkReserved, + IAssemblyName *pName, DWORD dwFlags, LPVOID pvReserved) +{ + FIXME("(%p, %p, %p, %08x, %p) stub!\n", pEnum, pUnkReserved, + pName, dwFlags, pvReserved); + + return E_NOTIMPL; +} + +/****************************************************************** + * CreateInstallReferenceEnum (FUSION.@) + */ +HRESULT WINAPI CreateInstallReferenceEnum(IInstallReferenceEnum **ppRefEnum, + IAssemblyName *pName, DWORD dwFlags, + LPVOID pvReserved) +{ + FIXME("(%p, %p, %08x, %p) stub!\n", ppRefEnum, pName, dwFlags, pvReserved); + return E_NOTIMPL; +} + +/****************************************************************** + * GetAssemblyIdentityFromFile (FUSION.@) + */ +HRESULT WINAPI GetAssemblyIdentityFromFile(LPCWSTR pwzFilePath, REFIID riid, + IUnknown **ppIdentity) +{ + FIXME("(%s, %s, %p) stub!\n", debugstr_w(pwzFilePath), debugstr_guid(riid), + ppIdentity); + + return E_NOTIMPL; +} + +static HRESULT (WINAPI *pGetCORVersion)(LPWSTR pbuffer, DWORD cchBuffer, + DWORD *dwLength); + +static HRESULT get_corversion(LPWSTR version, DWORD size) +{ + HMODULE hmscoree; + HRESULT hr; + DWORD len; + + hmscoree = LoadLibraryA("mscoree.dll"); + if (!hmscoree) + return E_FAIL; + + pGetCORVersion = (void *)GetProcAddress(hmscoree, "GetCORVersion"); + if (!pGetCORVersion) + return E_FAIL; + + hr = pGetCORVersion(version, size, &len); + + FreeLibrary(hmscoree); + return hr; +} + +/****************************************************************** + * GetCachePath (FUSION.@) + */ +HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS dwCacheFlags, LPWSTR pwzCachePath, + PDWORD pcchPath) +{ + WCHAR path[MAX_PATH]; + WCHAR windir[MAX_PATH]; + WCHAR version[MAX_PATH]; + DWORD len; + HRESULT hr = S_OK; + + static const WCHAR backslash[] = {'\\',0}; + static const WCHAR assembly[] = {'a','s','s','e','m','b','l','y',0}; + static const WCHAR gac[] = {'G','A','C',0}; + static const WCHAR nativeimg[] = { + 'N','a','t','i','v','e','I','m','a','g','e','s','_',0}; + static const WCHAR zapfmt[] = { + '%','s','\\','%','s','\\','%','s','%','s','_','3','2',0}; + + TRACE("(%08x, %p, %p)\n", dwCacheFlags, pwzCachePath, pcchPath); + + if (!pcchPath) + return E_INVALIDARG; + + GetWindowsDirectoryW(windir, MAX_PATH); + lstrcpyW(path, windir); + lstrcatW(path, backslash); + lstrcatW(path, assembly); + + switch (dwCacheFlags) + { + case ASM_CACHE_ZAP: + { + hr = get_corversion(version, MAX_PATH); + if (FAILED(hr)) + return hr; + + sprintfW(path, zapfmt, windir, assembly, nativeimg, version); + break; + } + + case ASM_CACHE_GAC: + { + lstrcatW(path, backslash); + lstrcatW(path, gac); + break; + } + + case ASM_CACHE_DOWNLOAD: + { + FIXME("Download cache not implemented\n"); + return E_FAIL; + } + + case ASM_CACHE_ROOT: + break; /* already set */ + + default: + return E_INVALIDARG; + } + + len = lstrlenW(path) + 1; + if (*pcchPath <= len || !pwzCachePath) + hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); + else if (pwzCachePath) + lstrcpyW(pwzCachePath, path); + + *pcchPath = len; + + return hr; +} Propchange: trunk/reactos/dll/win32/fusion/fusion.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/fusion.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/fusion.rb…
============================================================================== --- trunk/reactos/dll/win32/fusion/fusion.rbuild (added) +++ trunk/reactos/dll/win32/fusion/fusion.rbuild [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,22 @@ +<module name="fusion" type="win32dll" baseaddress="${BASEADDRESS_FUSION}" installbase="system32" installname="fusion.dll" allowwarnings="true"> + <importlibrary definition="fusion.spec.def" /> + <include base="fusion">.</include> + <include base="ReactOS">include/reactos/wine</include> + <define name="__WINESRC__" /> + <define name="__USE_W32API" /> + <define name="_WIN32_IE">0x600</define> + <define name="_WIN32_WINNT">0x601</define> + <define name="WINVER">0x501</define> + <library>wine</library> + <library>kernel32</library> + <library>version</library> + <library>shlwapi</library> + <library>advapi32</library> + <library>dbghelp</library> + <file>asmcache.c</file> + <file>asmname.c</file> + <file>assembly.c</file> + <file>fusion.c</file> + <file>fusion_main.c</file> + <file>fusion.spec</file> +</module> Propchange: trunk/reactos/dll/win32/fusion/fusion.rbuild ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/fusion.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/fusion.sp…
============================================================================== --- trunk/reactos/dll/win32/fusion/fusion.spec (added) +++ trunk/reactos/dll/win32/fusion/fusion.spec [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,17 @@ +@ stub CopyPDBs +@ stdcall ClearDownloadCache() +@ stub CreateApplicationContext +@ stdcall CreateAssemblyCache(ptr long) +@ stdcall CreateAssemblyEnum(ptr ptr ptr long ptr) +@ stdcall CreateAssemblyNameObject(ptr wstr long ptr) +@ stub CreateHistoryReader +@ stdcall CreateInstallReferenceEnum(ptr ptr long ptr) +@ stdcall GetCachePath(long wstr ptr) +@ stub GetHistoryFileDirectory +@ stub InitializeFusion +@ stub InstallCustomAssembly +@ stub InstallCustomModule +@ stub LookupHistoryAssembly +@ stub NukeDownloadedCache +@ stub PreBindAssembly +@ stub PreBindAssemblyEx Propchange: trunk/reactos/dll/win32/fusion/fusion.spec ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/fusion_main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/fusion_ma…
============================================================================== --- trunk/reactos/dll/win32/fusion/fusion_main.c (added) +++ trunk/reactos/dll/win32/fusion/fusion_main.c [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,47 @@ +/* + * fusion main + * + * Copyright 2008 James Hawkins + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "config.h" + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(fusion); + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ + TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved); + + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinstDLL); + break; + case DLL_PROCESS_DETACH: + break; + default: + break; + } + + return TRUE; +} Propchange: trunk/reactos/dll/win32/fusion/fusion_main.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/fusion_ros.diff URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/fusion_ro…
============================================================================== --- trunk/reactos/dll/win32/fusion/fusion_ros.diff (added) +++ trunk/reactos/dll/win32/fusion/fusion_ros.diff [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,11 @@ +--- dll\win32\fusion\fusion_main - Kopie.c Fr Sep 5 17:28:27 2008 ++++ dll\win32\fusion\fusion_main.c Mi Sep 10 10:38:55 2008 +@@ -34,8 +34,6 @@ + + switch (fdwReason) + { +- case DLL_WINE_PREATTACH: +- return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(hinstDLL); + break; Propchange: trunk/reactos/dll/win32/fusion/fusion_ros.diff ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/fusion/fusionpriv.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/fusion/fusionpri…
============================================================================== --- trunk/reactos/dll/win32/fusion/fusionpriv.h (added) +++ trunk/reactos/dll/win32/fusion/fusionpriv.h [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -1,0 +1,438 @@ +/* + * fusion private definitions + * + * Copyright 2008 James Hawkins + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_FUSION_PRIVATE__ +#define __WINE_FUSION_PRIVATE__ + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winuser.h" + +#include <pshpack1.h> + +typedef struct +{ + ULONG Signature; + USHORT MajorVersion; + USHORT MinorVersion; + ULONG Reserved; + ULONG VersionLength; + LPSTR Version; + BYTE Flags; + WORD Streams; +} METADATAHDR; + +typedef struct +{ + DWORD Offset; + DWORD Size; +} METADATASTREAMHDR; + +typedef struct +{ + DWORD Reserved1; + BYTE MajorVersion; + BYTE MinorVersion; + BYTE HeapOffsetSizes; + BYTE Reserved2; + LARGE_INTEGER MaskValid; + LARGE_INTEGER MaskSorted; +} METADATATABLESHDR; + +typedef struct +{ + WORD Generation; + WORD Name; + WORD Mvid; + WORD EncId; + WORD EncBaseId; +} MODULETABLE; + +typedef struct +{ + DWORD Flags; + WORD Name; + WORD Namespace; + WORD Extends; + WORD FieldList; + WORD MethodList; +} TYPEDEFTABLE; + +typedef struct +{ + WORD ResolutionScope; + WORD Name; + WORD Namespace; +} TYPEREFTABLE; + +typedef struct +{ + WORD Flags; + WORD Name; + WORD Signature; +} FIELDTABLE; + +typedef struct +{ + DWORD HashAlgId; + WORD MajorVersion; + WORD MinorVersion; + WORD BuildNumber; + WORD RevisionNumber; + DWORD Flags; + WORD PublicKey; + WORD Name; + WORD Culture; +} ASSEMBLYTABLE; + +typedef struct +{ + DWORD Offset; + DWORD Flags; + WORD Name; + WORD Implementation; +} MANIFESTRESTABLE; + +typedef struct +{ + DWORD RVA; + WORD ImplFlags; + WORD Flags; + WORD Name; + WORD Signature; + WORD ParamList; +} METHODDEFTABLE; + +typedef struct +{ + WORD Flags; + WORD Sequence; + WORD Name; +} PARAMTABLE; + +typedef struct +{ + WORD Class; + WORD Interface; +} INTERFACEIMPLTABLE; + +typedef struct +{ + WORD Class; + WORD Name; + WORD Signature; +} MEMBERREFTABLE; + +typedef struct +{ + BYTE Type; + BYTE Reserved; + WORD Parent; + WORD Value; +} CONSTANTTABLE; + +typedef struct +{ + WORD Parent; + WORD Type; + WORD Value; +} CUSTOMATTRIBUTETABLE; + +typedef struct +{ + WORD Parent; + WORD NativeType; +} FIELDMARSHALTABLE; + +typedef struct +{ + WORD Action; + WORD Parent; + WORD PermissionSet; +} DECLSECURITYTABLE; + +typedef struct +{ + WORD PackingSize; + DWORD ClassSize; + WORD Parent; +} CLASSLAYOUTTABLE; + +typedef struct +{ + DWORD Offset; + WORD Field; +} FIELDLAYOUTTABLE; + +typedef struct +{ + WORD Signature; +} STANDALONESIGTABLE; + +typedef struct +{ + WORD Parent; + WORD EventList; +} EVENTMAPTABLE; + +typedef struct +{ + WORD EventFlags; + WORD Name; + WORD EventType; +} EVENTTABLE; + +typedef struct +{ + WORD Parent; + WORD PropertyList; +} PROPERTYMAPTABLE; + +typedef struct +{ + WORD Flags; + WORD Name; + WORD Type; +} PROPERTYTABLE; + +typedef struct +{ + WORD Semantics; + WORD Method; + WORD Association; +} METHODSEMANTICSTABLE; + +typedef struct +{ + WORD Class; + WORD MethodBody; + WORD MethodDeclaration; +} METHODIMPLTABLE; + +typedef struct +{ + WORD Name; +} MODULEREFTABLE; + +typedef struct +{ + WORD Signature; +} TYPESPECTABLE; + +typedef struct +{ + WORD MappingFlags; + WORD MemberForwarded; + WORD ImportName; + WORD ImportScope; +} IMPLMAPTABLE; + +typedef struct +{ + DWORD RVA; + WORD Field; +} FIELDRVATABLE; + +typedef struct +{ + DWORD Processor; +} ASSEMBLYPROCESSORTABLE; + +typedef struct +{ + DWORD OSPlatformID; + DWORD OSMajorVersion; + DWORD OSMinorVersion; +} ASSEMBLYOSTABLE; + +typedef struct +{ + WORD MajorVersion; + WORD MinorVersion; + WORD BuildNumber; + WORD RevisionNumber; + DWORD Flags; + WORD PublickKeyOrToken; + WORD Name; + WORD Culture; + WORD HashValue; +} ASSEMBLYREFTABLE; + +typedef struct +{ + DWORD Processor; + WORD AssemblyRef; +} ASSEMBLYREFPROCESSORTABLE; + +typedef struct +{ + DWORD OSPlatformId; + DWORD OSMajorVersion; + DWORD OSMinorVersion; + WORD AssemblyRef; +} ASSEMBLYREFOSTABLE; + +typedef struct +{ + DWORD Flags; + WORD Name; + WORD HashValue; +} FILETABLE; + +typedef struct +{ + DWORD Flags; + DWORD TypeDefId; + WORD TypeName; + WORD TypeNameSpace; + WORD Implementation; +} EXPORTEDTYPETABLE; + +typedef struct +{ + WORD NestedClass; + WORD EnclosingClass; +} NESTEDCLASSTABLE; + +typedef struct +{ + WORD Number; + WORD Flags; +} GENERICPARAMTABLE; + +typedef struct +{ + WORD MethodDef; + WORD Instantiation; +} METHODSPECTABLE; + +typedef struct +{ + WORD Owner; + WORD Constraint; +} GENERICPARAMCONSTRAINTTABLE; + +typedef struct +{ + DWORD ImportLookupTable; + DWORD DateTimeStamp; + DWORD ForwarderChain; + DWORD Name; + DWORD ImportAddressTable; + BYTE pad[20]; +} IMPORTTABLE; + +typedef struct +{ + DWORD HintNameTableRVA; + BYTE pad[8]; +} IMPORTLOOKUPTABLE; + +typedef struct +{ + WORD Hint; + BYTE Name[12]; + BYTE Module[12]; + DWORD Reserved; + WORD EntryPoint; + DWORD RVA; +} HINTNAMETABLE; + +typedef struct +{ + DWORD PageRVA; + DWORD Size; + DWORD Relocation; +} RELOCATION; + +typedef struct +{ + WORD wLength; + WORD wValueLength; + WORD wType; + WCHAR szKey[17]; + VS_FIXEDFILEINFO Value; +} VS_VERSIONINFO; + +typedef struct +{ + WORD wLength; + WORD wValueLength; + WORD wType; + WCHAR szKey[13]; +} VARFILEINFO; + +typedef struct +{ + WORD wLength; + WORD wValueLength; + WORD wType; + WCHAR szKey[13]; + DWORD Value; +} VAR; + +typedef struct +{ + WORD wLength; + WORD wValueLength; + WORD wType; + WCHAR szKey[15]; +} STRINGFILEINFO; + +typedef struct +{ + WORD wLength; + WORD wValueLength; + WORD wType; + WCHAR szKey[9]; +} STRINGTABLE; + +typedef struct +{ + WORD wLength; + WORD wValueLength; + WORD wType; +} STRINGHDR; + +typedef struct +{ + DWORD Size; + DWORD Signature; + DWORD HeaderVersion; + DWORD SkipData; + BYTE Data[168]; +} RESOURCE; + +#include <poppack.h> + +struct tagASSEMBLY; +typedef struct tagASSEMBLY ASSEMBLY; + +HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file); +HRESULT assembly_release(ASSEMBLY *assembly); +HRESULT assembly_get_name(ASSEMBLY *assembly, LPSTR *name); +HRESULT assembly_get_path(ASSEMBLY *assembly, LPSTR *path); +HRESULT assembly_get_version(ASSEMBLY *assembly, LPSTR *version); +HRESULT assembly_get_architecture(ASSEMBLY *assembly, DWORD fixme); +HRESULT assembly_get_pubkey_token(ASSEMBLY *assembly, LPSTR *token); + +#endif /* __WINE_FUSION_PRIVATE__ */ Propchange: trunk/reactos/dll/win32/fusion/fusionpriv.h ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/win32/win32.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/win32.rbuild?rev…
============================================================================== --- trunk/reactos/dll/win32/win32.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/win32.rbuild [iso-8859-1] Wed Sep 10 03:47:30 2008 @@ -85,6 +85,9 @@ <directory name="fmifs"> <xi:include href="fmifs/fmifs.rbuild" /> </directory> +<directory name="fusion"> + <xi:include href="fusion/fusion.rbuild" /> +</directory> <directory name="gdi32"> <xi:include href="gdi32/gdi32.rbuild" /> </directory>
16 years, 3 months
1
0
0
0
[cwittich] 36113: sync fusion.idl with wine 1.1.4
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 03:45:43 2008 New Revision: 36113 URL:
http://svn.reactos.org/svn/reactos?rev=36113&view=rev
Log: sync fusion.idl with wine 1.1.4 Modified: trunk/reactos/include/psdk/fusion.idl trunk/reactos/include/psdk/winnt.h Modified: trunk/reactos/include/psdk/fusion.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/fusion.idl?re…
============================================================================== --- trunk/reactos/include/psdk/fusion.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/fusion.idl [iso-8859-1] Wed Sep 10 03:45:43 2008 @@ -343,3 +343,12 @@ { } + +cpp_quote("HRESULT WINAPI ClearDownloadCache(void);") +cpp_quote("HRESULT WINAPI CompareAssemblyIdentity(LPCWSTR,BOOL,LPCWSTR,BOOL,BOOL*,AssemblyComparisonResult*);") +cpp_quote("HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);") +cpp_quote("HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum**,IUnknown*,IAssemblyName*,DWORD,LPVOID);") +cpp_quote("HRESULT WINAPI CreateAssemblyNameObject(LPASSEMBLYNAME*,LPCWSTR,DWORD,LPVOID);") +cpp_quote("HRESULT WINAPI CreateInstallReferenceEnum(IInstallReferenceEnum**,IAssemblyName*,DWORD,LPVOID);") +cpp_quote("HRESULT WINAPI GetAssemblyIdentityFromFile(LPCWSTR,REFIID,IUnknown**);") +cpp_quote("HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS,LPWSTR,PDWORD);") Modified: trunk/reactos/include/psdk/winnt.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=3…
============================================================================== --- trunk/reactos/include/psdk/winnt.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winnt.h [iso-8859-1] Wed Sep 10 03:45:43 2008 @@ -3599,6 +3599,63 @@ BYTE Selection; } Section; } IMAGE_AUX_SYMBOL,*PIMAGE_AUX_SYMBOL; + +#ifndef __IMAGE_COR20_HEADER_DEFINED__ +#define __IMAGE_COR20_HEADER_DEFINED__ + +typedef enum ReplacesCorHdrNumericDefines +{ + COMIMAGE_FLAGS_ILONLY = 0x00000001, + COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002, + COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004, + COMIMAGE_FLAGS_STRONGNAMESIGNED = 0x00000008, + COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000, + + COR_VERSION_MAJOR_V2 = 2, + COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2, + COR_VERSION_MINOR = 0, + COR_DELETED_NAME_LENGTH = 8, + COR_VTABLEGAP_NAME_LENGTH = 8, + + NATIVE_TYPE_MAX_CB = 1, + COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xff, + + IMAGE_COR_MIH_METHODRVA = 0x01, + IMAGE_COR_MIH_EHRVA = 0x02, + IMAGE_COR_MIH_BASICBLOCK = 0x08, + + COR_VTABLE_32BIT = 0x01, + COR_VTABLE_64BIT = 0x02, + COR_VTABLE_FROM_UNMANAGED = 0x04, + COR_VTABLE_CALL_MOST_DERIVED = 0x10, + + IMAGE_COR_EATJ_THUNK_SIZE = 32, + + MAX_CLASS_NAME = 1024, + MAX_PACKAGE_NAME = 1024, +} ReplacesCorHdrNumericDefines; + +typedef struct IMAGE_COR20_HEADER +{ + DWORD cb; + WORD MajorRuntimeVersion; + WORD MinorRuntimeVersion; + + IMAGE_DATA_DIRECTORY MetaData; + DWORD Flags; + DWORD EntryPointToken; + + IMAGE_DATA_DIRECTORY Resources; + IMAGE_DATA_DIRECTORY StrongNameSignature; + IMAGE_DATA_DIRECTORY CodeManagerTable; + IMAGE_DATA_DIRECTORY VTableFixups; + IMAGE_DATA_DIRECTORY ExportAddressTableJumps; + IMAGE_DATA_DIRECTORY ManagedNativeHeader; + +} IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER; + +#endif + typedef struct _IMAGE_COFF_SYMBOLS_HEADER { DWORD NumberOfSymbols; DWORD LvaToFirstSymbol;
16 years, 3 months
1
0
0
0
[fireball] 36112: - Add missing function implementations into generic CRT library.
by fireball@svn.reactos.org
Author: fireball Date: Wed Sep 10 03:30:43 2008 New Revision: 36112 URL:
http://svn.reactos.org/svn/reactos?rev=36112&view=rev
Log: - Add missing function implementations into generic CRT library. Modified: trunk/reactos/lib/sdk/crt/crt.rbuild Modified: trunk/reactos/lib/sdk/crt/crt.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/crt.rbuild?rev…
============================================================================== --- trunk/reactos/lib/sdk/crt/crt.rbuild [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/crt.rbuild [iso-8859-1] Wed Sep 10 03:30:43 2008 @@ -45,6 +45,7 @@ <file>matherr.c</file> <if property="ARCH" value="i386"> <directory name="i386"> + <file>chkstk_asm.s</file> <file>prolog.s</file> <file>seh.s</file> <file>unwind.c</file> @@ -103,14 +104,34 @@ <if property="ARCH" value="i386"> <directory name="i386"> + <file>alldiv_asm.s</file> + <file>alldvrm_asm.s</file> + <file>allmul_asm.s</file> + <file>allrem_asm.s</file> + <file>allshl_asm.s</file> + <file>allshr_asm.s</file> + <file>atan_asm.s</file> + <file>aulldiv_asm.s</file> + <file>aulldvrm_asm.s</file> + <file>aullrem_asm.s</file> + <file>aullshr_asm.s</file> + <file>ceil_asm.s</file> + <file>cos_asm.s</file> + <file>fabs_asm.s</file> + <file>floor_asm.s</file> + <file>ftol_asm.s</file> + <file>log_asm.s</file> + <file>log10_asm.s</file> + <file>pow_asm.s</file> + <file>sin_asm.s</file> + <file>sqrt_asm.s</file> + <file>tan_asm.s</file> + <file>atan2.c</file> <file>ci.c</file> <file>exp.c</file> <file>fmod.c</file> <file>ldexp.c</file> - <file>atan_asm.s</file> - <file>pow_asm.s</file> - <file>log10_asm.s</file> </directory> </if> <ifnot property="ARCH" value="i386">
16 years, 3 months
1
0
0
0
[cwittich] 36111: add stdole2 dependency
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 03:16:00 2008 New Revision: 36111 URL:
http://svn.reactos.org/svn/reactos?rev=36111&view=rev
Log: add stdole2 dependency Modified: trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild Modified: trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml.tlb/mshtm…
============================================================================== --- trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild [iso-8859-1] Wed Sep 10 03:16:00 2008 @@ -1,5 +1,6 @@ <group> <module name="mshtml_tlb" type="embeddedtypelib"> + <dependency>stdole2</dependency> <file>mshtml_tlb.idl</file> </module> <module name="mshtml.tlb" type="win32dll" extension=".tlb" installbase="system32" installname="mshtml.tlb" entrypoint="0">
16 years, 3 months
1
0
0
0
[sedwards] 36110: move to lower case, for Christoph
by sedwards@svn.reactos.org
Author: sedwards Date: Wed Sep 10 03:08:19 2008 New Revision: 36110 URL:
http://svn.reactos.org/svn/reactos?rev=36110&view=rev
Log: move to lower case, for Christoph Added: trunk/reactos/include/dxsdk/vmrender.idl - copied unchanged from r36109, trunk/reactos/include/dxsdk/Vmrender.idl Removed: trunk/reactos/include/dxsdk/Vmrender.idl Removed: trunk/reactos/include/dxsdk/Vmrender.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/Vmrender.idl…
============================================================================== --- trunk/reactos/include/dxsdk/Vmrender.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/Vmrender.idl (removed) @@ -1,498 +1,0 @@ - -cpp_quote("#if 0") - - import "unknwn.idl"; - typedef int DWORD; - typedef int REFERENCE_TIME; - typedef int HMONITOR; - typedef int AM_MEDIA_TYPE; - - typedef DWORD* LPDIRECTDRAW7; - typedef DWORD* LPDIRECTDRAWSURFACE7; - typedef DWORD* LPDDPIXELFORMAT; - typedef DWORD* LPBITMAPINFOHEADER; - typedef struct {DWORD dw1; DWORD dw2;} DDCOLORKEY; - typedef DDCOLORKEY* LPDDCOLORKEY; -cpp_quote ("#endif") - -cpp_quote("#include <ddraw.h>") - -cpp_quote("#define VMRBITMAP_DISABLE 0x00000001") -cpp_quote("#define VMRBITMAP_HDC 0x00000002") -cpp_quote("#define VMRBITMAP_ENTIREDDS 0x00000004") -cpp_quote("#define VMRBITMAP_SRCCOLORKEY 0x00000008") -cpp_quote("#define VMRBITMAP_SRCRECT 0x00000010") - -interface IVMRSurface; -interface IVMRSurfaceAllocator; -interface IVMRSurfaceAllocatorNotify; -interface IVMRImagePresenter; -interface IVMRImagePresenterConfig; -interface IVMRWindowlessControl; -interface IVMRMixerControl; -interface IVMRMixerBitmap; -interface IVMRFilterConfig; -interface IVMRAspectRatioControl; -interface IVMRDeinterlaceControl; -interface IVMRMonitorConfig; -interface IVMRImageCompositor; -interface IVMRVideoStreamControl; - -#define VMRDEVICENAMELEN 32 -#define VMRDEVICEDESCRIPTIONLEN 256 - -typedef enum -{ - VMRSample_SyncPoint = 0x00000001, - VMRSample_Preroll = 0x00000002, - VMRSample_Discontinuity = 0x00000004, - VMRSample_TimeValid = 0x00000008, - VMRSample_SrcDstRectsValid= 0x00000010 -} VMRPresentationFlags; - -typedef enum -{ - AMAP_PIXELFORMAT_VALID = 0x01, - AMAP_3D_TARGET = 0x02, - AMAP_ALLOW_SYSMEM = 0x04, - AMAP_FORCE_SYSMEM = 0x08, - AMAP_DIRECTED_FLIP = 0x10, - AMAP_DXVA_TARGET = 0x20 -} VMRSurfaceAllocationFlags; - -typedef enum -{ - VMR_ARMODE_NONE, - VMR_ARMODE_LETTER_BOX -} VMR_ASPECT_RATIO_MODE; - - -typedef enum -{ - MixerPref_NoDecimation = 0x00000001, - MixerPref_DecimateOutput = 0x00000002, - MixerPref_ARAdjustXorY = 0x00000004, - MixerPref_DecimationReserved = 0x00000008, - MixerPref_DecimateMask = 0x0000000F, - MixerPref_BiLinearFiltering = 0x00000010, - MixerPref_PointFiltering = 0x00000020, - MixerPref_FilteringMask = 0x000000F0, - MixerPref_RenderTargetRGB = 0x00000100, - MixerPref_RenderTargetYUV = 0x00001000, - MixerPref_RenderTargetYUV420 = 0x00000200, - MixerPref_RenderTargetYUV422 = 0x00000400, - MixerPref_RenderTargetYUV444 = 0x00000800, - MixerPref_RenderTargetReserved = 0x0000E000, - MixerPref_RenderTargetMask = 0x0000FF00, - MixerPref_DynamicSwitchToBOB = 0x00010000, - MixerPref_DynamicDecimateBy2 = 0x00020000, - MixerPref_DynamicReserved = 0x000C0000, - MixerPref_DynamicMask = 0x000F0000 -} VMRMixerPrefs; - -typedef enum -{ - RenderPrefs_RestrictToInitialMonitor = 0x00000000, - RenderPrefs_ForceOffscreen = 0x00000001, - RenderPrefs_ForceOverlays = 0x00000002, - RenderPrefs_AllowOverlays = 0x00000000, - RenderPrefs_AllowOffscreen = 0x00000000, - RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008, - RenderPrefs_Reserved = 0x00000010, - RenderPrefs_PreferAGPMemWhenMixing = 0x00000020, - - RenderPrefs_Mask = 0x0000003f, -} VMRRenderPrefs; - -typedef enum -{ - VMRMode_Windowed = 0x00000001, - VMRMode_Windowless = 0x00000002, - VMRMode_Renderless = 0x00000004, - VMRMode_Mask = 0x00000007, -} VMRMode; - -enum -{ - MAX_NUMBER_OF_STREAMS = 16 -}; - -typedef enum -{ - DeinterlacePref_NextBest = 0x01, - DeinterlacePref_BOB = 0x02, - DeinterlacePref_Weave = 0x04, - DeinterlacePref_Mask = 0x07 -} VMRDeinterlacePrefs; - -typedef enum -{ - DeinterlaceTech_Unknown = 0x0000, - DeinterlaceTech_BOBLineReplicate = 0x0001, - DeinterlaceTech_BOBVerticalStretch = 0x0002, - DeinterlaceTech_MedianFiltering = 0x0004, - DeinterlaceTech_EdgeFiltering = 0x0010, - DeinterlaceTech_FieldAdaptive = 0x0020, - DeinterlaceTech_PixelAdaptive = 0x0040, - DeinterlaceTech_MotionVectorSteered = 0x0080 -} VMRDeinterlaceTech; - -typedef struct tagVMRPRESENTATIONINFO -{ - DWORD dwFlags; - LPDIRECTDRAWSURFACE7 lpSurf; - REFERENCE_TIME rtStart; - REFERENCE_TIME rtEnd; - SIZE szAspectRatio; - RECT rcSrc; - RECT rcDst; - DWORD dwTypeSpecificFlags; - DWORD dwInterlaceFlags; -} VMRPRESENTATIONINFO; - -typedef struct tagVMRALLOCATIONINFO -{ - DWORD dwFlags; - LPBITMAPINFOHEADER lpHdr; - LPDDPIXELFORMAT lpPixFmt; - SIZE szAspectRatio; - DWORD dwMinBuffers; - DWORD dwMaxBuffers; - DWORD dwInterlaceFlags; - SIZE szNativeSize; -} VMRALLOCATIONINFO; - -typedef struct _NORMALIZEDRECT -{ - float left; - float top; - float right; - float bottom; -} NORMALIZEDRECT, *PNORMALIZEDRECT; - -typedef struct tagVMRGUID -{ - GUID* pGUID; - GUID GUID; -} VMRGUID; - -typedef struct tagVMRMONITORINFO -{ - VMRGUID guid; - RECT rcMonitor; - HMONITOR hMon; - DWORD dwFlags; - wchar_t szDevice[VMRDEVICENAMELEN]; - wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN]; - LARGE_INTEGER liDriverVersion; - DWORD dwVendorId; - DWORD dwDeviceId; - DWORD dwSubSysId; - DWORD dwRevision; -} VMRMONITORINFO; - -typedef struct _VMRFrequency -{ - DWORD dwNumerator; - DWORD dwDenominator; -} VMRFrequency; - -typedef struct _VMRVideoDesc -{ - DWORD dwSize; - DWORD dwSampleWidth; - DWORD dwSampleHeight; - BOOL SingleFieldPerSample; - DWORD dwFourCC; - VMRFrequency InputSampleFreq; - VMRFrequency OutputFrameFreq; -} VMRVideoDesc; - -typedef struct _VMRDeinterlaceCaps -{ - DWORD dwSize; - DWORD dwNumPreviousOutputFrames; - DWORD dwNumForwardRefSamples; - DWORD dwNumBackwardRefSamples; - VMRDeinterlaceTech DeinterlaceTechnology; -} VMRDeinterlaceCaps; - -typedef struct _VMRALPHABITMAP -{ - DWORD dwFlags; - HDC hdc; - LPDIRECTDRAWSURFACE7 pDDS; - RECT rSrc; - NORMALIZEDRECT rDest; - FLOAT fAlpha; - COLORREF clrSrcKey; -} VMRALPHABITMAP, *PVMRALPHABITMAP; - -typedef struct _VMRVIDEOSTREAMINFO -{ - LPDIRECTDRAWSURFACE7 pddsVideoSurface; - DWORD dwWidth; - DWORD dwHeight; - FLOAT dwStrmID; - FLOAT fAlpha; - DDCOLORKEY ddClrKey; - NORMALIZEDRECT rNormal; -} VMRVIDEOSTREAMINFO; - - - -[ - local, - object, - local, - uuid(CE704FE7-E71E-41fb-BAA2-C4403E1182F5), - pointer_default(unique) -] -interface IVMRImagePresenter : IUnknown -{ - HRESULT StartPresenting([in] DWORD_PTR dwUserID); - HRESULT StopPresenting([in] DWORD_PTR dwUserID); - HRESULT PresentImage([in] DWORD_PTR dwUserID, [in] VMRPRESENTATIONINFO* lpPresInfo); -}; - -[ - local, - object, - local, - uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52), - pointer_default(unique) -] -interface IVMRSurfaceAllocator : IUnknown -{ - HRESULT AllocateSurface([in] DWORD_PTR dwUserID, [in] VMRALLOCATIONINFO* lpAllocInfo, [in] [out] DWORD* lpdwActualBuffers, [out] LPDIRECTDRAWSURFACE7 *lplpSurface); - HRESULT FreeSurface([in] DWORD_PTR dwID); - HRESULT PrepareSurface([in] DWORD_PTR dwUserID, [in] LPDIRECTDRAWSURFACE7 lpSurface, [in] DWORD dwSurfaceFlags); - HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify* lpIVMRSurfAllocNotify); -}; - -[ - local, - object, - local, - uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2), - pointer_default(unique) -] -interface IVMRSurfaceAllocatorNotify : IUnknown -{ - HRESULT AdviseSurfaceAllocator([in] DWORD_PTR dwUserID, [in] IVMRSurfaceAllocator* lpIVRMSurfaceAllocator); - HRESULT SetDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor); - HRESULT ChangeDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor); - HRESULT RestoreDDrawSurfaces(); - HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR Param1, [in] LONG_PTR Param2); - HRESULT SetBorderColor([in] COLORREF clrBorder); -}; - -[ - local, - object, - local, - uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7), - pointer_default(unique) -] -interface IVMRWindowlessControl : IUnknown -{ - HRESULT GetNativeVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight, [out] LONG* lpARWidth, [out] LONG* lpARHeight); - HRESULT GetMinIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight); - HRESULT GetMaxIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight); - HRESULT SetVideoPosition([in] const LPRECT lpSRCRect, [in] const LPRECT lpDSTRect); - HRESULT GetVideoPosition([out] LPRECT lpSRCRect, [out] LPRECT lpDSTRect); - HRESULT GetAspectRatioMode([out] DWORD* lpAspectRatioMode); - HRESULT SetAspectRatioMode([in] DWORD AspectRatioMode); - HRESULT SetVideoClippingWindow([in] HWND hwnd); - HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc); - HRESULT DisplayModeChanged(); - HRESULT GetCurrentImage([out] BYTE** lpDib); - HRESULT SetBorderColor([in] COLORREF Clr); - HRESULT GetBorderColor([out] COLORREF* lpClr); - HRESULT SetColorKey([in] COLORREF Clr); - HRESULT GetColorKey([out] COLORREF* lpClr); -}; - -[ - local, - object, - local, - uuid(1c1a17b0-bed0-415d-974b-dc6696131599), - pointer_default(unique) -] -interface IVMRMixerControl : IUnknown -{ - HRESULT SetAlpha([in] DWORD dwStreamID, [in] float Alpha); - HRESULT GetAlpha([in] DWORD dwStreamID, [out] float* pAlpha); - HRESULT SetZOrder([in] DWORD dwStreamID, [in] DWORD dwZ); - HRESULT GetZOrder([in] DWORD dwStreamID, [out] DWORD* pZ); - HRESULT SetOutputRect([in] DWORD dwStreamID, [in] const NORMALIZEDRECT *pRect); - HRESULT GetOutputRect([in] DWORD dwStreamID, [out] NORMALIZEDRECT *pRect); - HRESULT SetBackgroundClr([in] COLORREF ClrBkg); - HRESULT GetBackgroundClr([in] COLORREF* lpClrBkg); - HRESULT SetMixingPrefs([in] DWORD dwMixerPrefs); - HRESULT GetMixingPrefs([out] DWORD* pdwMixerPrefs); -}; - -[ - object, - local, - uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce), - pointer_default(unique) -] -interface IVMRMonitorConfig : IUnknown -{ - HRESULT SetMonitor([in] const VMRGUID *pGUID); - HRESULT GetMonitor([out] VMRGUID *pGUID); - HRESULT SetDefaultMonitor([in] const VMRGUID *pGUID); - HRESULT GetDefaultMonitor([out] VMRGUID *pGUID); - HRESULT GetAvailableMonitors([out, size_is(dwMaxInfoArraySize)] VMRMONITORINFO* pInfo, [in] DWORD dwMaxInfoArraySize, [out] DWORD* pdwNumDevices); -}; - - -[ - object, - local, - uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36), - pointer_default(unique) -] -interface IVMRFilterConfig : IUnknown -{ - HRESULT SetImageCompositor([in] IVMRImageCompositor* lpVMRImgCompositor); - HRESULT SetNumberOfStreams([in] DWORD dwMaxStreams); - HRESULT GetNumberOfStreams([out] DWORD* pdwMaxStreams); - HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags); - HRESULT GetRenderingPrefs([out] DWORD* pdwRenderFlags); - HRESULT SetRenderingMode([in] DWORD Mode); - HRESULT GetRenderingMode([out] DWORD* pMode); -} - - -[ - object, - local, - uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd), - pointer_default(unique) -] -interface IVMRAspectRatioControl : IUnknown -{ - HRESULT GetAspectRatioMode([out] LPDWORD lpdwARMode); - HRESULT SetAspectRatioMode([in] DWORD dwARMode); -} - -[ - object, - local, - uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f), - pointer_default(unique) -] -interface IVMRDeinterlaceControl : IUnknown -{ - - HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc* lpVideoDescription, [in] [out] LPDWORD lpdwNumDeinterlaceModes, [out] LPGUID lpDeinterlaceModes); - HRESULT GetDeinterlaceModeCaps([in] LPGUID lpDeinterlaceMode, [in] VMRVideoDesc* lpVideoDescription, [in] [out] VMRDeinterlaceCaps* lpDeinterlaceCaps); - HRESULT GetDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode ); - HRESULT SetDeinterlaceMode([in] DWORD dwStreamID, [in] LPGUID lpDeinterlaceMode); - HRESULT GetDeinterlacePrefs([out] LPDWORD lpdwDeinterlacePrefs); - HRESULT SetDeinterlacePrefs([in] DWORD dwDeinterlacePrefs); - HRESULT GetActualDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode); -} - -[ - object, - local, - uuid(1E673275-0257-40aa-AF20-7C608D4A0428), - pointer_default(unique) -] -interface IVMRMixerBitmap : IUnknown -{ - HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *pBmpParms); - HRESULT UpdateAlphaBitmapParameters([in] PVMRALPHABITMAP pBmpParms); - HRESULT GetAlphaBitmapParameters([out] PVMRALPHABITMAP pBmpParms); -}; - -[ - local, - object, - local, - uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82), - pointer_default(unique) -] -interface IVMRImageCompositor : IUnknown -{ - HRESULT InitCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget); - HRESULT TermCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget); - HRESULT SetStreamMediaType([in] DWORD dwStrmID, [in] AM_MEDIA_TYPE* pmt, [in] BOOL fTexture); - HRESULT CompositeImage([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget, [in] AM_MEDIA_TYPE* pmtRenderTarget, [in] REFERENCE_TIME rtStart, [in] REFERENCE_TIME rtEnd, [in] DWORD dwClrBkGnd, [in] VMRVIDEOSTREAMINFO* pVideoStreamInfo, [in] UINT cStreams); -}; - -[ - object, - local, - uuid(058d1f11-2a54-4bef-bd54-df706626b727), - pointer_default(unique) -] -interface IVMRVideoStreamControl: IUnknown -{ - HRESULT SetColorKey([in] LPDDCOLORKEY lpClrKey); - HRESULT GetColorKey([out] LPDDCOLORKEY lpClrKey); - HRESULT SetStreamActiveState([in] BOOL fActive); - HRESULT GetStreamActiveState([out] BOOL* lpfActive); -}; - -[ - local, - object, - local, - uuid(a9849bbe-9ec8-4263-b764-62730f0d15d0), - pointer_default(unique) -] -interface IVMRSurface : IUnknown -{ - HRESULT IsSurfaceLocked(); - HRESULT LockSurface([out] BYTE** lpSurface); - HRESULT UnlockSurface(); - HRESULT GetSurface([out] LPDIRECTDRAWSURFACE7 *lplpSurface); -}; - -[ - local, - object, - local, - uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178), - pointer_default(unique) -] - -interface IVMRImagePresenterConfig : IUnknown -{ - HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags); - HRESULT GetRenderingPrefs([out] DWORD* dwRenderFlags); -} - -[ - local, - object, - local, - uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea), - pointer_default(unique) -] - -interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig -{ - HRESULT SetXlcModeDDObjAndPrimarySurface([in] LPDIRECTDRAW7 lpDDObj, [in] LPDIRECTDRAWSURFACE7 lpPrimarySurf); - HRESULT GetXlcModeDDObjAndPrimarySurface([out] LPDIRECTDRAW7* lpDDObj, [out] LPDIRECTDRAWSURFACE7* lpPrimarySurf); -} - -[ - local, - object, - local, - uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a), - pointer_default(unique) -] -interface IVPManager : IUnknown -{ - HRESULT SetVideoPortIndex([in] DWORD dwVideoPortIndex); - HRESULT GetVideoPortIndex([out] DWORD* pdwVideoPortIndex); -}; -
16 years, 3 months
1
0
0
0
[cwittich] 36109: -add mshtml to bootcd -register ole typelibs
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 02:44:39 2008 New Revision: 36109 URL:
http://svn.reactos.org/svn/reactos?rev=36109&view=rev
Log: -add mshtml to bootcd -register ole typelibs Modified: trunk/reactos/boot/bootdata/hivecls_i386.inf trunk/reactos/boot/bootdata/packages/reactos.dff Modified: trunk/reactos/boot/bootdata/hivecls_i386.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivecls_i386…
============================================================================== --- trunk/reactos/boot/bootdata/hivecls_i386.inf [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/hivecls_i386.inf [iso-8859-1] Wed Sep 10 02:44:39 2008 @@ -825,4 +825,12 @@ HKCR,"InternetShortcut\shell\print\command",,,"rundll32.exe mshtml.dll,PrintHTML \"%1\"" HKCR,"InternetShortcut\shell\printto\command",,,"rundll32.exe mshtml.dll,PrintHTML \"%1\" \"%2\" \"%3\" \"%4\"" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0,,,"OLE Automation" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\0\win16,,,"stdole.tlb" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\0\win32,,,"stdole32.tlb" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\1.0\FLAGS,,,"1" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\2.0,,,"OLE Automation" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\2.0\0\win32,,,"stdole2.tlb" +HKCR,TypeLib\{00020430-0000-0000-C000-000000000046}\2.0\FLAGS,,,"0" + ; EOF Modified: trunk/reactos/boot/bootdata/packages/reactos.dff URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/packages/rea…
============================================================================== --- trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] Wed Sep 10 02:44:39 2008 @@ -277,6 +277,7 @@ dll\win32\mscoree\mscoree.dll 1 dll\win32\msgina\msgina.dll 1 dll\win32\mshtml\mshtml.dll 1 +dll\win32\mshtml.tlb\mshtml.tlb 1 dll\win32\msi\msi.dll 1 dll\win32\msimg32\msimg32.dll 1 dll\win32\mstask\mstask.dll 1
16 years, 3 months
1
0
0
0
[cwittich] 36108: sync mshtml to wine 1.1.4
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 02:44:02 2008 New Revision: 36108 URL:
http://svn.reactos.org/svn/reactos?rev=36108&view=rev
Log: sync mshtml to wine 1.1.4 Added: trunk/reactos/dll/win32/mshtml.tlb/ (with props) trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild (with props) trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec (with props) trunk/reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl (with props) trunk/reactos/dll/win32/mshtml.tlb/rsrc.rc (with props) trunk/reactos/dll/win32/mshtml/Zh.rc (with props) Modified: trunk/reactos/dll/win32/mshtml/dispex.c trunk/reactos/dll/win32/mshtml/htmlanchor.c trunk/reactos/dll/win32/mshtml/htmlbody.c trunk/reactos/dll/win32/mshtml/htmldoc.c trunk/reactos/dll/win32/mshtml/htmlelem.c trunk/reactos/dll/win32/mshtml/htmlelem2.c trunk/reactos/dll/win32/mshtml/htmlstyle.c trunk/reactos/dll/win32/mshtml/htmltextcont.c trunk/reactos/dll/win32/mshtml/htmlwindow.c trunk/reactos/dll/win32/mshtml/mshtml_private.h trunk/reactos/dll/win32/mshtml/omnavigator.c trunk/reactos/dll/win32/mshtml/rsrc.rc trunk/reactos/dll/win32/mshtml/task.c trunk/reactos/dll/win32/win32.rbuild Propchange: trunk/reactos/dll/win32/mshtml.tlb/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Wed Sep 10 02:44:02 2008 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: trunk/reactos/dll/win32/mshtml.tlb/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: trunk/reactos/dll/win32/mshtml.tlb/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/win32/mshtml.tlb/ ------------------------------------------------------------------------------ tsvn:logminsize = 10 Added: trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml.tlb/mshtm…
============================================================================== --- trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild (added) +++ trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -1,0 +1,17 @@ +<group> +<module name="mshtml_tlb" type="embeddedtypelib"> + <file>mshtml_tlb.idl</file> +</module> +<module name="mshtml.tlb" type="win32dll" extension=".tlb" installbase="system32" installname="mshtml.tlb" entrypoint="0"> + <importlibrary definition="mshtml.tlb.spec.def" /> + <include base="mshtml.tlb" root="intermediate">.</include> + <dependency>mshtml_tlb</dependency> + <define name="__WINESRC__" /> + <define name="_WIN32_IE">0x600</define> + <define name="_WIN32_WINNT">0x501</define> + <define name="WINVER">0x501</define> + <library>kernel32</library> + <file>mshtml.tlb.spec</file> + <file>rsrc.rc</file> +</module> +</group> Propchange: trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.rbuild ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml.tlb/mshtm…
============================================================================== --- trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec (added) +++ trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -1,0 +1,1 @@ +# no exported entry points Propchange: trunk/reactos/dll/win32/mshtml.tlb/mshtml.tlb.spec ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml.tlb/mshtm…
============================================================================== --- trunk/reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl (added) +++ trunk/reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -1,0 +1,19 @@ +/* + * Copyright 2007 Jacek Caban 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "mshtml.idl" Propchange: trunk/reactos/dll/win32/mshtml.tlb/mshtml_tlb.idl ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/mshtml.tlb/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml.tlb/rsrc.…
============================================================================== --- trunk/reactos/dll/win32/mshtml.tlb/rsrc.rc (added) +++ trunk/reactos/dll/win32/mshtml.tlb/rsrc.rc [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -1,0 +1,24 @@ +/* + * Copyright 2007 Jacek Caban 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "windef.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +/* @makedep: mshtml_tlb.tlb */ +1 TYPELIB LOADONCALL DISCARDABLE mshtml_tlb.tlb Propchange: trunk/reactos/dll/win32/mshtml.tlb/rsrc.rc ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/dll/win32/mshtml/Zh.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/Zh.rc?rev…
============================================================================== --- trunk/reactos/dll/win32/mshtml/Zh.rc (added) +++ trunk/reactos/dll/win32/mshtml/Zh.rc [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -1,0 +1,98 @@ +/* + * mshtml (Simplified and Traditional Chinese Resources) + * + * Copyright 2008 Hongbo Ni <
hongbo.at.njstar.com
> + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* Chinese text is encoded in UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED + +STRINGTABLE DISCARDABLE +{ + IDS_HTMLDISABLED "HTML åè½ç®å已被åç¨." + IDS_HTMLDOCUMENT "HTML æ件" + IDS_DOWNLOADING "æ£å¨ä¸è½½..." + IDS_INSTALLING "æ£å¨å®è£ ..." +} + +ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 85 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Wine Gecko å®è£ " +FONT 9, "MS Song" +{ + LTEXT "è¿ä¸ªè¿ç¨ç¨åºè¦æ¾ç¤ºä¸ä¸ªHTML ç½é¡µ. Wine éè¦è£ ä¸ Gecko (Mozilla HTML " \ + "engine)æè½æ¾ç¤ºHTMLç½é¡µ. å¦æä½ æ³èªå¨ä¸è½½åå®è£ Geckoï¼" \ + "请æ'å®è£ '.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT + CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12 + DEFPUSHBUTTON "å®è£ (&I)", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP + PUSHBUTTON "åæ¶(&C)", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP +} + +IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "è¶ é¾æ¥" +FONT 9, "MS Song" +{ + GROUPBOX "è¶ é¾æ¥ä¿¡æ¯", IDC_STATIC, 5, 5, 190, 55 + LTEXT "ç±»å(&T):", IDC_STATIC, 10, 22, 20, 10 + COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "ç½å(&U):", IDC_STATIC, 10, 42, 20, 10 + EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + PUSHBUTTON "ç¡®å®", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "åæ¶", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP +} + +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL + +STRINGTABLE DISCARDABLE +{ + IDS_HTMLDISABLED "HTML åè½ç®å已被åç¨." + IDS_HTMLDOCUMENT "HTML æªæ¡" + IDS_DOWNLOADING "æ£å¨ä¸è¼..." + IDS_INSTALLING "æ£å¨å®è£..." +} + +ID_DWL_DIALOG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 260, 85 +STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Wine Gecko å®è£" +FONT 8, "PMingLiu" +{ + LTEXT "éåéç¨ç¨å¼è¦é¡¯ç¤ºä¸åHTML 網é . Wine éè¦è£ä¸ Gecko (Mozilla HTML " \ + "engine)æè½é¡¯ç¤ºHTML網é . å¦æä½ æ³èªåä¸è¼åå®è£Geckoï¼" \ + "è«æ'å®è£'.", ID_DWL_STATUS, 10, 10, 240, 30, SS_LEFT + CONTROL "Progress", ID_DWL_PROGRESS, PROGRESS_CLASSA, WS_BORDER|PBS_SMOOTH, 10, 40, 240, 12 + DEFPUSHBUTTON "å®è£(&I)", ID_DWL_INSTALL, 200, 60, 50, 15, WS_GROUP | WS_TABSTOP + PUSHBUTTON "åæ¶(&C)", IDCANCEL, 140, 60, 50, 15, WS_GROUP | WS_TABSTOP +} + +IDD_HYPERLINK DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 250, 65 +STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "è¶ éæ¥" +FONT 8, "PMingLiu" +{ + GROUPBOX "è¶ éæ¥è³è¨", IDC_STATIC, 5, 5, 190, 55 + LTEXT "é¡å(&T):", IDC_STATIC, 10, 22, 20, 10 + COMBOBOX IDC_TYPE, 35, 20, 45, 100, WS_TABSTOP | WS_GROUP | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS + LTEXT "網å(&U):", IDC_STATIC, 10, 42, 20, 10 + EDITTEXT IDC_URL, 35, 40, 150, 14, ES_AUTOHSCROLL | WS_BORDER | WS_GROUP | WS_TABSTOP + PUSHBUTTON "確å®", IDOK, 200, 10, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP + PUSHBUTTON "åæ¶", IDCANCEL, 200, 28, 45, 14, WS_GROUP | WS_TABSTOP +} + +#pragma code_page(default) Propchange: trunk/reactos/dll/win32/mshtml/Zh.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/win32/mshtml/dispex.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/dispex.c?…
============================================================================== --- trunk/reactos/dll/win32/mshtml/dispex.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/dispex.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -66,6 +66,7 @@ static REFIID tid_ids[] = { &IID_NULL, &DIID_DispDOMChildrenCollection, + &DIID_DispHTMLBody, &DIID_DispHTMLCommentElement, &DIID_DispHTMLDocument, &DIID_DispHTMLDOMTextNode, @@ -78,7 +79,10 @@ &DIID_DispHTMLStyle, &DIID_DispHTMLUnknownElement, &DIID_DispHTMLWindow2, + &IID_IHTMLBodyElement, + &IID_IHTMLBodyElement2, &IID_IHTMLCommentElement, + &IID_IHTMLControlElement, &IID_IHTMLDocument2, &IID_IHTMLDocument3, &IID_IHTMLDocument4, @@ -89,6 +93,8 @@ &IID_IHTMLDOMTextNode, &IID_IHTMLElement, &IID_IHTMLElement2, + &IID_IHTMLElement3, + &IID_IHTMLElement4, &IID_IHTMLElementCollection, &IID_IHTMLGenericElement, &IID_IHTMLImgElement, @@ -96,6 +102,8 @@ &IID_IHTMLOptionElement, &IID_IHTMLSelectElement, &IID_IHTMLStyle, + &IID_IHTMLTextContainer, + &IID_IHTMLUniqueName, &IID_IHTMLWindow2, &IID_IHTMLWindow3, &IID_IOmNavigator Modified: trunk/reactos/dll/win32/mshtml/htmlanchor.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmlancho…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmlanchor.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmlanchor.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -67,16 +67,14 @@ static HRESULT WINAPI HTMLAnchorElement_GetTypeInfoCount(IHTMLAnchorElement *iface, UINT *pctinfo) { HTMLAnchorElement *This = HTMLANCHOR_THIS(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->element.node.dispex), pctinfo); } static HRESULT WINAPI HTMLAnchorElement_GetTypeInfo(IHTMLAnchorElement *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLAnchorElement *This = HTMLANCHOR_THIS(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->element.node.dispex), iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLAnchorElement_GetIDsOfNames(IHTMLAnchorElement *iface, REFIID riid, @@ -84,9 +82,7 @@ LCID lcid, DISPID *rgDispId) { HTMLAnchorElement *This = HTMLANCHOR_THIS(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLAnchorElement_Invoke(IHTMLAnchorElement *iface, DISPID dispIdMember, @@ -94,9 +90,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLAnchorElement *This = HTMLANCHOR_THIS(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(DISPATCHEX(&This->element.node.dispex), dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLAnchorElement_put_href(IHTMLAnchorElement *iface, BSTR v) Modified: trunk/reactos/dll/win32/mshtml/htmlbody.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmlbody.…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmlbody.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmlbody.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -110,16 +110,14 @@ static HRESULT WINAPI HTMLBodyElement_GetTypeInfoCount(IHTMLBodyElement *iface, UINT *pctinfo) { HTMLBodyElement *This = HTMLBODY_THIS(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->textcont.element.node.dispex), pctinfo); } static HRESULT WINAPI HTMLBodyElement_GetTypeInfo(IHTMLBodyElement *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLBodyElement *This = HTMLBODY_THIS(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->textcont.element.node.dispex), iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLBodyElement_GetIDsOfNames(IHTMLBodyElement *iface, REFIID riid, @@ -127,9 +125,7 @@ LCID lcid, DISPID *rgDispId) { HTMLBodyElement *This = HTMLBODY_THIS(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->textcont.element.node.dispex), riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLBodyElement_Invoke(IHTMLBodyElement *iface, DISPID dispIdMember, @@ -137,9 +133,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLBodyElement *This = HTMLBODY_THIS(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(DISPATCHEX(&This->textcont.element.node.dispex), dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLBodyElement_put_background(IHTMLBodyElement *iface, BSTR v) @@ -596,6 +591,28 @@ HTMLBodyElement_destructor }; +static const tid_t HTMLBodyElement_iface_tids[] = { + IHTMLBodyElement_tid, + IHTMLBodyElement2_tid, + IHTMLControlElement_tid, + IHTMLDOMNode_tid, + IHTMLDOMNode2_tid, + IHTMLElement_tid, + IHTMLElement2_tid, + IHTMLElement3_tid, + IHTMLElement4_tid, + IHTMLTextContainer_tid, + IHTMLUniqueName_tid, + 0 +}; + +static dispex_static_data_t HTMLBodyElement_dispex = { + NULL, + DispHTMLBody_tid, + NULL, + HTMLBodyElement_iface_tids +}; + HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem) { HTMLBodyElement *ret = heap_alloc_zero(sizeof(HTMLBodyElement)); @@ -606,6 +623,8 @@ HTMLTextContainer_Init(&ret->textcont); ret->lpHTMLBodyElementVtbl = &HTMLBodyElementVtbl; + + init_dispex(&ret->textcont.element.node.dispex, (IUnknown*)HTMLBODY(ret), &HTMLBodyElement_dispex); ret->textcont.element.node.vtbl = &HTMLBodyElementImplVtbl; ConnectionPoint_Init(&ret->cp_propnotif, &ret->textcont.element.cp_container, &IID_IPropertyNotifySink); Modified: trunk/reactos/dll/win32/mshtml/htmldoc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmldoc.c…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmldoc.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmldoc.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -252,8 +252,12 @@ static HRESULT WINAPI HTMLDocument_get_Script(IHTMLDocument2 *iface, IDispatch **p) { HTMLDocument *This = HTMLDOC_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + *p = (IDispatch*)HTMLWINDOW2(This->window); + IDispatch_AddRef(*p); + return S_OK; } static HRESULT WINAPI HTMLDocument_get_all(IHTMLDocument2 *iface, IHTMLElementCollection **p) @@ -381,15 +385,70 @@ static HRESULT WINAPI HTMLDocument_put_title(IHTMLDocument2 *iface, BSTR v) { HTMLDocument *This = HTMLDOC_THIS(iface); - FIXME("(%p)->(%s)\n", This, debugstr_w(v)); - return E_NOTIMPL; + nsIDOMHTMLDocument *nshtmldoc; + nsIDOMDocument *nsdoc; + nsAString nsstr; + nsresult nsres; + + TRACE("(%p)->(%s)\n", This, debugstr_w(v)); + + if(!This->nscontainer) + return E_FAIL; + + nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc); + if(NS_FAILED(nsres) || !nsdoc) { + ERR("GetDocument failed: %08x\n", nsres); + return E_FAIL; + } + + nsIDOMDocument_QueryInterface(nsdoc, &IID_nsIDOMHTMLDocument, (void**)&nshtmldoc); + nsIDOMDocument_Release(nsdoc); + + nsAString_Init(&nsstr, v); + nsres = nsIDOMHTMLDocument_SetTitle(nshtmldoc, &nsstr); + nsIDOMHTMLDocument_Release(nshtmldoc); + nsAString_Finish(&nsstr); + if(NS_FAILED(nsres)) + ERR("SetTitle failed: %08x\n", nsres); + + return S_OK; } static HRESULT WINAPI HTMLDocument_get_title(IHTMLDocument2 *iface, BSTR *p) { HTMLDocument *This = HTMLDOC_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + nsIDOMHTMLDocument *nshtmldoc; + nsIDOMDocument *nsdoc; + const PRUnichar *ret; + nsAString nsstr; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + if(!This->nscontainer) + return E_FAIL; + + nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc); + if(NS_FAILED(nsres) || !nsdoc) { + ERR("GetDocument failed: %08x\n", nsres); + return E_FAIL; + } + + nsIDOMDocument_QueryInterface(nsdoc, &IID_nsIDOMHTMLDocument, (void**)&nshtmldoc); + nsIDOMDocument_Release(nsdoc); + + nsAString_Init(&nsstr, NULL); + + nsres = nsIDOMHTMLDocument_GetTitle(nshtmldoc, &nsstr); + nsIDOMHTMLDocument_Release(nshtmldoc); + if (NS_FAILED(nsres)) + ERR("GetTitle failed: %08x\n", nsres); + + nsAString_GetData(&nsstr, &ret); + *p = SysAllocString(ret); + nsAString_Finish(&nsstr); + + return S_OK; } static HRESULT WINAPI HTMLDocument_get_scripts(IHTMLDocument2 *iface, IHTMLElementCollection **p) Modified: trunk/reactos/dll/win32/mshtml/htmlelem.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmlelem.…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmlelem.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmlelem.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -103,16 +103,14 @@ static HRESULT WINAPI HTMLElement_GetTypeInfoCount(IHTMLElement *iface, UINT *pctinfo) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->node.dispex), pctinfo); } static HRESULT WINAPI HTMLElement_GetTypeInfo(IHTMLElement *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->node.dispex), iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLElement_GetIDsOfNames(IHTMLElement *iface, REFIID riid, @@ -120,9 +118,7 @@ LCID lcid, DISPID *rgDispId) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->node.dispex), riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLElement_Invoke(IHTMLElement *iface, DISPID dispIdMember, @@ -130,9 +126,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(DISPATCHEX(&This->node.dispex), dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLElement_setAttribute(IHTMLElement *iface, BSTR strAttributeName, @@ -387,8 +382,21 @@ static HRESULT WINAPI HTMLElement_get_parentElement(IHTMLElement *iface, IHTMLElement **p) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + IHTMLDOMNode *node; + HRESULT hres; + + TRACE("(%p)->(%p)\n", This, p); + + hres = IHTMLDOMNode_get_parentNode(HTMLDOMNODE(&This->node), &node); + if(FAILED(hres)) + return hres; + + hres = IHTMLDOMNode_QueryInterface(node, &IID_IHTMLElement, (void**)p); + IHTMLDOMNode_Release(node); + if(FAILED(hres)) + *p = NULL; + + return S_OK; } static HRESULT WINAPI HTMLElement_get_style(IHTMLElement *iface, IHTMLStyle **p) @@ -745,8 +753,27 @@ static HRESULT WINAPI HTMLElement_get_offsetHeight(IHTMLElement *iface, long *p) { HTMLElement *This = HTMLELEM_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + nsIDOMNSHTMLElement *nselem; + PRInt32 offset = 0; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); + if(NS_FAILED(nsres)) { + ERR("Could not get nsIDOMNSHTMLElement: %08x\n", nsres); + return E_FAIL; + } + + nsres = nsIDOMNSHTMLElement_GetOffsetHeight(nselem, &offset); + nsIDOMNSHTMLElement_Release(nselem); + if(NS_FAILED(nsres)) { + ERR("GetOffsetHeight failed: %08x\n", nsres); + return E_FAIL; + } + + *p = offset; + return S_OK; } static HRESULT WINAPI HTMLElement_get_offsetParent(IHTMLElement *iface, IHTMLElement **p) @@ -1896,6 +1923,31 @@ return HTMLElementCollection_Create((IUnknown*)HTMLDOMNODE(node), buf.buf, buf.len); } +IHTMLElementCollection *create_collection_from_nodelist(HTMLDocument *doc, IUnknown *unk, nsIDOMNodeList *nslist) +{ + PRUint32 length = 0, i; + elem_vector buf; + + nsIDOMNodeList_GetLength(nslist, &length); + + buf.len = buf.size = length; + if(buf.len) { + nsIDOMNode *nsnode; + + buf.buf = heap_alloc(buf.size*sizeof(HTMLElement*)); + + for(i=0; i<length; i++) { + nsIDOMNodeList_Item(nslist, i, &nsnode); + buf.buf[i] = HTMLELEM_NODE_THIS(get_node(doc, nsnode, TRUE)); + nsIDOMNode_Release(nsnode); + } + }else { + buf.buf = NULL; + } + + return HTMLElementCollection_Create(unk, buf.buf, buf.len); +} + static IHTMLElementCollection *HTMLElementCollection_Create(IUnknown *ref_unk, HTMLElement **elems, DWORD len) { Modified: trunk/reactos/dll/win32/mshtml/htmlelem2.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmlelem2…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmlelem2.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmlelem2.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -56,16 +56,14 @@ static HRESULT WINAPI HTMLElement2_GetTypeInfoCount(IHTMLElement2 *iface, UINT *pctinfo) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->node.dispex), pctinfo); } static HRESULT WINAPI HTMLElement2_GetTypeInfo(IHTMLElement2 *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->node.dispex), iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLElement2_GetIDsOfNames(IHTMLElement2 *iface, REFIID riid, @@ -73,9 +71,7 @@ LCID lcid, DISPID *rgDispId) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->node.dispex), riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLElement2_Invoke(IHTMLElement2 *iface, DISPID dispIdMember, @@ -83,9 +79,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(DISPATCHEX(&This->node.dispex), dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLElement2_get_scopeName(IHTMLElement2 *iface, BSTR *p) @@ -713,15 +708,51 @@ static HRESULT WINAPI HTMLElement2_get_scrollHeight(IHTMLElement2 *iface, long *p) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + nsIDOMNSHTMLElement *nselem; + PRInt32 height = 0; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); + if(NS_SUCCEEDED(nsres)) { + nsres = nsIDOMNSHTMLElement_GetScrollHeight(nselem, &height); + nsIDOMNSHTMLElement_Release(nselem); + if(NS_FAILED(nsres)) + ERR("GetScrollHeight failed: %08x\n", nsres); + }else { + ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres); + } + + *p = height; + TRACE("*p = %ld\n", *p); + + return S_OK; } static HRESULT WINAPI HTMLElement2_get_scrollWidth(IHTMLElement2 *iface, long *p) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + nsIDOMNSHTMLElement *nselem; + PRInt32 width = 0; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); + if(NS_SUCCEEDED(nsres)) { + nsres = nsIDOMNSHTMLElement_GetScrollWidth(nselem, &width); + nsIDOMNSHTMLElement_Release(nselem); + if(NS_FAILED(nsres)) + ERR("GetScrollWidth failed: %08x\n", nsres); + }else { + ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres); + } + + *p = width; + TRACE("*p = %ld\n", *p); + + return S_OK; } static HRESULT WINAPI HTMLElement2_put_scrollTop(IHTMLElement2 *iface, long v) @@ -751,8 +782,26 @@ static HRESULT WINAPI HTMLElement2_get_scrollTop(IHTMLElement2 *iface, long *p) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + nsIDOMNSHTMLElement *nselem; + PRInt32 top = 0; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsres = nsIDOMElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); + if(NS_SUCCEEDED(nsres)) { + nsres = nsIDOMNSHTMLElement_GetScrollTop(nselem, &top); + nsIDOMNSHTMLElement_Release(nselem); + if(NS_FAILED(nsres)) + ERR("GetScrollTop failed: %08x\n", nsres); + }else { + ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres); + } + + *p = top; + TRACE("*p = %ld\n", *p); + + return S_OK; } static HRESULT WINAPI HTMLElement2_put_scrollLeft(IHTMLElement2 *iface, long v) @@ -917,12 +966,27 @@ return E_NOTIMPL; } -static HRESULT WINAPI HTMLElement2_getElementByTagName(IHTMLElement2 *iface, BSTR v, +static HRESULT WINAPI HTMLElement2_getElementsByTagName(IHTMLElement2 *iface, BSTR v, IHTMLElementCollection **pelColl) { HTMLElement *This = HTMLELEM2_THIS(iface); - FIXME("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl); - return E_NOTIMPL; + nsIDOMNodeList *nslist; + nsAString tag_str; + nsresult nsres; + + TRACE("(%p)->(%s %p)\n", This, debugstr_w(v), pelColl); + + nsAString_Init(&tag_str, v); + nsres = nsIDOMHTMLElement_GetElementsByTagName(This->nselem, &tag_str, &nslist); + nsAString_Finish(&tag_str); + if(NS_FAILED(nsres)) { + ERR("GetElementByTagName failed: %08x\n", nsres); + return E_FAIL; + } + + *pelColl = create_collection_from_nodelist(This->node.doc, (IUnknown*)HTMLELEM(This), nslist); + nsIDOMNodeList_Release(nslist); + return S_OK; } #undef HTMLELEM2_THIS @@ -1032,7 +1096,7 @@ HTMLElement2_put_onbeforeeditfocus, HTMLElement2_get_onbeforeeditfocus, HTMLElement2_get_readyStateValue, - HTMLElement2_getElementByTagName, + HTMLElement2_getElementsByTagName, }; void HTMLElement2_Init(HTMLElement *This) Modified: trunk/reactos/dll/win32/mshtml/htmlstyle.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmlstyle…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmlstyle.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmlstyle.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -279,16 +279,14 @@ static HRESULT WINAPI HTMLStyle_GetTypeInfoCount(IHTMLStyle *iface, UINT *pctinfo) { HTMLStyle *This = HTMLSTYLE_THIS(iface); - FIXME("(%p)->(%p)\n", This, pctinfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfoCount(DISPATCHEX(&This->dispex), pctinfo); } static HRESULT WINAPI HTMLStyle_GetTypeInfo(IHTMLStyle *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) { HTMLStyle *This = HTMLSTYLE_THIS(iface); - FIXME("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - return E_NOTIMPL; + return IDispatchEx_GetTypeInfo(DISPATCHEX(&This->dispex), iTInfo, lcid, ppTInfo); } static HRESULT WINAPI HTMLStyle_GetIDsOfNames(IHTMLStyle *iface, REFIID riid, @@ -296,9 +294,7 @@ LCID lcid, DISPID *rgDispId) { HTMLStyle *This = HTMLSTYLE_THIS(iface); - FIXME("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames, - lcid, rgDispId); - return E_NOTIMPL; + return IDispatchEx_GetIDsOfNames(DISPATCHEX(&This->dispex), riid, rgszNames, cNames, lcid, rgDispId); } static HRESULT WINAPI HTMLStyle_Invoke(IHTMLStyle *iface, DISPID dispIdMember, @@ -306,9 +302,8 @@ VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) { HTMLStyle *This = HTMLSTYLE_THIS(iface); - FIXME("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid), - lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - return E_NOTIMPL; + return IDispatchEx_Invoke(DISPATCHEX(&This->dispex), dispIdMember, riid, lcid, + wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); } static HRESULT WINAPI HTMLStyle_put_fontFamily(IHTMLStyle *iface, BSTR v) @@ -455,8 +450,10 @@ static HRESULT WINAPI HTMLStyle_get_background(IHTMLStyle *iface, BSTR *p) { HTMLStyle *This = HTMLSTYLE_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_style_attr(This, attrBackground, p); } static HRESULT WINAPI HTMLStyle_put_backgroundColor(IHTMLStyle *iface, VARIANT v) Modified: trunk/reactos/dll/win32/mshtml/htmltextcont.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmltextc…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmltextcont.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmltextcont.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -101,47 +101,19 @@ static HRESULT WINAPI HTMLTextContainer_get_scrollHeight(IHTMLTextContainer *iface, long *p) { HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface); - nsIDOMNSHTMLElement *nselem; - PRInt32 height = 0; - nsresult nsres; TRACE("(%p)->(%p)\n", This, p); - nsres = nsIDOMElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); - if(NS_SUCCEEDED(nsres)) { - nsIDOMNSHTMLElement_GetScrollHeight(nselem, &height); - nsIDOMNSHTMLElement_Release(nselem); - }else { - ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres); - } - - *p = height; - TRACE("*p = %ld\n", *p); - - return S_OK; + return IHTMLElement2_get_scrollHeight(HTMLELEM2(&This->element), p); } static HRESULT WINAPI HTMLTextContainer_get_scrollWidth(IHTMLTextContainer *iface, long *p) { HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface); - nsIDOMNSHTMLElement *nselem; - PRInt32 width = 0; - nsresult nsres; TRACE("(%p)->(%p)\n", This, p); - nsres = nsIDOMElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); - if(NS_SUCCEEDED(nsres)) { - nsIDOMNSHTMLElement_GetScrollWidth(nselem, &width); - nsIDOMNSHTMLElement_Release(nselem); - }else { - ERR("Could not get nsIDOMNSHTMLElement interface: %08x\n", nsres); - } - - *p = width; - TRACE("*p = %ld\n", *p); - - return S_OK; + return IHTMLElement2_get_scrollWidth(HTMLELEM2(&This->element), p); } static HRESULT WINAPI HTMLTextContainer_put_scrollTop(IHTMLTextContainer *iface, long v) @@ -156,8 +128,10 @@ static HRESULT WINAPI HTMLTextContainer_get_scrollTop(IHTMLTextContainer *iface, long *p) { HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return IHTMLElement2_get_scrollTop(HTMLELEM2(&This->element), p); } static HRESULT WINAPI HTMLTextContainer_put_scrollLeft(IHTMLTextContainer *iface, long v) Modified: trunk/reactos/dll/win32/mshtml/htmlwindow.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/htmlwindo…
============================================================================== --- trunk/reactos/dll/win32/mshtml/htmlwindow.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/htmlwindow.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -1281,7 +1281,7 @@ HTMLWindow *HTMLWindow_Create(HTMLDocument *doc) { - HTMLWindow *ret = heap_alloc(sizeof(HTMLWindow)); + HTMLWindow *ret = heap_alloc_zero(sizeof(HTMLWindow)); ret->lpHTMLWindow2Vtbl = &HTMLWindow2Vtbl; ret->lpHTMLWindow3Vtbl = &HTMLWindow3Vtbl; Modified: trunk/reactos/dll/win32/mshtml/mshtml_private.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/mshtml_pr…
============================================================================== --- trunk/reactos/dll/win32/mshtml/mshtml_private.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/mshtml_private.h [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -62,6 +62,7 @@ typedef enum { NULL_tid, DispDOMChildrenCollection_tid, + DispHTMLBody_tid, DispHTMLCommentElement_tid, DispHTMLDocument_tid, DispHTMLDOMTextNode_tid, @@ -74,7 +75,10 @@ DispHTMLStyle_tid, DispHTMLUnknownElement_tid, DispHTMLWindow2_tid, + IHTMLBodyElement_tid, + IHTMLBodyElement2_tid, IHTMLCommentElement_tid, + IHTMLControlElement_tid, IHTMLDocument2_tid, IHTMLDocument3_tid, IHTMLDocument4_tid, @@ -85,6 +89,8 @@ IHTMLDOMTextNode_tid, IHTMLElement_tid, IHTMLElement2_tid, + IHTMLElement3_tid, + IHTMLElement4_tid, IHTMLElementCollection_tid, IHTMLGenericElement_tid, IHTMLImgElement_tid, @@ -92,6 +98,8 @@ IHTMLOptionElement_tid, IHTMLSelectElement_tid, IHTMLStyle_tid, + IHTMLTextContainer_tid, + IHTMLUniqueName_tid, IHTMLWindow2_tid, IHTMLWindow3_tid, IOmNavigator_tid, @@ -482,7 +490,7 @@ void call_property_onchanged(ConnectionPoint*,DISPID); HRESULT call_set_active_object(IOleInPlaceUIWindow*,IOleInPlaceActiveObject*); -void *nsalloc(size_t); +void *nsalloc(size_t) __WINE_ALLOC_SIZE(1); void nsfree(void*); void nsACString_Init(nsACString*,const char*); @@ -566,6 +574,7 @@ IDispatch *script_parse_event(HTMLDocument*,LPCWSTR); IHTMLElementCollection *create_all_collection(HTMLDOMNode*); +IHTMLElementCollection *create_collection_from_nodelist(HTMLDocument*,IUnknown*,nsIDOMNodeList*); /* commands */ typedef struct { @@ -645,17 +654,17 @@ /* memory allocation functions */ -static inline void *heap_alloc(size_t len) +static inline void __WINE_ALLOC_SIZE(1) *heap_alloc(size_t len) { return HeapAlloc(GetProcessHeap(), 0, len); } -static inline void *heap_alloc_zero(size_t len) +static inline void __WINE_ALLOC_SIZE(1) *heap_alloc_zero(size_t len) { return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); } -static inline void *heap_realloc(void *mem, size_t len) +static inline void __WINE_ALLOC_SIZE(2) *heap_realloc(void *mem, size_t len) { return HeapReAlloc(GetProcessHeap(), 0, mem, len); } Modified: trunk/reactos/dll/win32/mshtml/omnavigator.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/omnavigat…
============================================================================== --- trunk/reactos/dll/win32/mshtml/omnavigator.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/omnavigator.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -127,8 +127,13 @@ static HRESULT WINAPI OmNavigator_get_appCodeName(IOmNavigator *iface, BSTR *p) { OmNavigator *This = OMNAVIGATOR_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + static const WCHAR mozillaW[] = {'M','o','z','i','l','l','a',0}; + + TRACE("(%p)->(%p)\n", This, p); + + *p = SysAllocString(mozillaW); + return S_OK; } static HRESULT WINAPI OmNavigator_get_appName(IOmNavigator *iface, BSTR *p) @@ -232,8 +237,13 @@ static HRESULT WINAPI OmNavigator_get_platform(IOmNavigator *iface, BSTR *p) { OmNavigator *This = OMNAVIGATOR_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + static const WCHAR win32W[] = {'W','i','n','3','2',0}; + + TRACE("(%p)->(%p)\n", This, p); + + *p = SysAllocString(win32W); + return S_OK; } static HRESULT WINAPI OmNavigator_get_appMinorVersion(IOmNavigator *iface, BSTR *p) Modified: trunk/reactos/dll/win32/mshtml/rsrc.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/rsrc.rc?r…
============================================================================== --- trunk/reactos/dll/win32/mshtml/rsrc.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/rsrc.rc [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -49,6 +49,7 @@ #include "Si.rc" #include "Sv.rc" #include "Tr.rc" +#include "Zh.rc" LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL Modified: trunk/reactos/dll/win32/mshtml/task.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/task.c?re…
============================================================================== --- trunk/reactos/dll/win32/mshtml/task.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mshtml/task.c [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -128,6 +128,8 @@ { task_timer_t *iter; + list_remove(&timer->entry); + if(list_empty(&thread_data->timer_list) || LIST_ENTRY(list_head(&thread_data->timer_list), task_timer_t, entry)->time > timer->time) { @@ -159,6 +161,7 @@ timer->doc = doc; timer->time = tc + msec; timer->interval = interval ? msec : 0; + list_init(&timer->entry); IDispatch_AddRef(disp); timer->disp = disp; @@ -363,6 +366,8 @@ static LRESULT process_timer(void) { thread_data_t *thread_data = get_thread_data(TRUE); + HTMLDocument *doc; + IDispatch *disp; DWORD tc; task_timer_t *timer; @@ -377,10 +382,9 @@ return 0; } - list_remove(&timer->entry); - list_init(&timer->entry); - - call_disp_func(timer->doc, timer->disp); + doc = timer->doc; + disp = timer->disp; + IDispatch_AddRef(disp); if(timer->interval) { timer->time += timer->interval; @@ -388,6 +392,10 @@ }else { release_task_timer(thread_data->thread_hwnd, timer); } + + call_disp_func(doc, disp); + + IDispatch_Release(disp); } KillTimer(thread_data->thread_hwnd, TIMER_ID); Modified: trunk/reactos/dll/win32/win32.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/win32.rbuild?rev…
============================================================================== --- trunk/reactos/dll/win32/win32.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/win32/win32.rbuild [iso-8859-1] Wed Sep 10 02:44:02 2008 @@ -163,6 +163,9 @@ <directory name="mshtml"> <xi:include href="mshtml/mshtml.rbuild" /> </directory> +<directory name="mshtml.tlb"> + <xi:include href="mshtml.tlb/mshtml.tlb.rbuild" /> +</directory> <directory name="msi"> <xi:include href="msi/msi.rbuild" /> </directory>
16 years, 3 months
1
0
0
0
[cgutman] 36107: - Return the correct status
by cgutman@svn.reactos.org
Author: cgutman Date: Wed Sep 10 02:43:05 2008 New Revision: 36107 URL:
http://svn.reactos.org/svn/reactos?rev=36107&view=rev
Log: - Return the correct status Modified: branches/aicom-network-fixes/drivers/network/afd/afd/select.c Modified: branches/aicom-network-fixes/drivers/network/afd/afd/select.c URL:
http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/net…
============================================================================== --- branches/aicom-network-fixes/drivers/network/afd/afd/select.c [iso-8859-1] (original) +++ branches/aicom-network-fixes/drivers/network/afd/afd/select.c [iso-8859-1] Wed Sep 10 02:43:05 2008 @@ -317,7 +317,7 @@ AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status)); - return UnlockAndMaybeComplete( FCB, STATUS_SUCCESS, Irp, + return UnlockAndMaybeComplete( FCB, Status, Irp, 0, NULL ); }
16 years, 3 months
1
0
0
0
[cwittich] 36106: sync dxsdk idl files with wine
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 02:41:27 2008 New Revision: 36106 URL:
http://svn.reactos.org/svn/reactos?rev=36106&view=rev
Log: sync dxsdk idl files with wine Removed: trunk/reactos/include/dxsdk/dvdif.idl Modified: trunk/reactos/include/dxsdk/Videoacc.idl trunk/reactos/include/dxsdk/amstream.idl trunk/reactos/include/dxsdk/austream.idl trunk/reactos/include/dxsdk/ddstream.idl trunk/reactos/include/dxsdk/devenum.idl trunk/reactos/include/dxsdk/dxsdk.rbuild trunk/reactos/include/dxsdk/dyngraph.idl trunk/reactos/include/dxsdk/mediaobj.idl trunk/reactos/include/dxsdk/medparam.idl trunk/reactos/include/dxsdk/mmstream.idl trunk/reactos/include/dxsdk/strmif.idl Modified: trunk/reactos/include/dxsdk/Videoacc.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/Videoacc.idl…
============================================================================== --- trunk/reactos/include/dxsdk/Videoacc.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/Videoacc.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -2,8 +2,6 @@ cpp_quote("#if 0") -typedef void* LPVOID; -typedef void* LPGUID; typedef void* LPDIRECTDRAWSURFACE; typedef void* LPDDPIXELFORMAT; typedef void* LPAMVAInternalMemInfo; Modified: trunk/reactos/include/dxsdk/amstream.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/amstream.idl…
============================================================================== --- trunk/reactos/include/dxsdk/amstream.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/amstream.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,3 +1,20 @@ +/* + * Copyright 2004 Christian Costa + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; import "mmstream.idl"; @@ -9,61 +26,62 @@ cpp_quote("#include <ddstream.h>") cpp_quote("#include <austream.h>") +cpp_quote("#if 0") +interface IDirectDraw; +interface IDirectDrawSurface; +cpp_quote("#endif") + interface IAMMultiMediaStream; interface IAMMediaStream; interface IMediaStreamFilter; -interface IDirectDraw; -interface IDirectDrawSurface; interface IAMMediaTypeStream; interface IAMMediaTypeSample; -enum -{ - AMMSF_NOGRAPHTHREAD = 0x00000001 +enum { + AMMSF_NOGRAPHTHREAD = 0x00000001 }; -enum -{ - AMMSF_ADDDEFAULTRENDERER = 0x00000001, - AMMSF_CREATEPEER = 0x00000002, - AMMSF_STOPIFNOSAMPLES = 0x00000004, - AMMSF_NOSTALL = 0x00000008 +enum { + AMMSF_ADDDEFAULTRENDERER = 0x00000001, + AMMSF_CREATEPEER = 0x00000002, + AMMSF_STOPIFNOSAMPLES = 0x00000004, + AMMSF_NOSTALL = 0x00000008 }; -enum -{ - AMMSF_RENDERTYPEMASK = 0x00000003, - AMMSF_RENDERTOEXISTING = 0x00000000, - AMMSF_RENDERALLSTREAMS = 0x00000001, - AMMSF_NORENDER = 0x00000002, - - AMMSF_NOCLOCK = 0x00000004, - AMMSF_RUN = 0x00000008 +enum { + AMMSF_RENDERTYPEMASK = 0x00000003, + AMMSF_RENDERTOEXISTING = 0x00000000, + AMMSF_RENDERALLSTREAMS = 0x00000001, + AMMSF_NORENDER = 0x00000002, + AMMSF_NOCLOCK = 0x00000004, + AMMSF_RUN = 0x00000008 }; -typedef [v1_enum] enum -{ - Disabled = 0, - ReadData = 1, - RenderData = 2 + +typedef [v1_enum] enum { + Disabled = 0, + ReadData = 1, + RenderData = 2 } OUTPUT_STATE; - +/* [ object, uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D), dual, +helpstring("IDirectShowStream Interface"), pointer_default(unique) ] interface IDirectShowStream : IDispatch { - [propget, id(1)] HRESULT FileName([out, retval] BSTR *pVal); - [propput, id(1)] HRESULT FileName([in] BSTR newVal); - [propget, id(2)] HRESULT Video([out, retval] OUTPUT_STATE *pVal); - [propput, id(2)] HRESULT Video([in] OUTPUT_STATE newVal); - [propget, id(3)] HRESULT Audio([out, retval] OUTPUT_STATE *pVal); - [propput, id(3)] HRESULT Audio([in] OUTPUT_STATE newVal); + [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal); + [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal); + [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal); + [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal); + [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal); + [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal); }; +*/ [ object, @@ -72,14 +90,36 @@ ] interface IAMMultiMediaStream : IMultiMediaStream { - HRESULT Initialize([in] STREAM_TYPE StreamType, [in] DWORD dwFlags, [in] IGraphBuilder *pFilterGraph); - HRESULT GetFilterGraph([out] IGraphBuilder **ppGraphBuilder); - HRESULT GetFilter([out] IMediaStreamFilter **ppFilter); - HRESULT AddMediaStream([in] IUnknown *pStreamObject, [in] const MSPID *PurposeId, [in] DWORD dwFlags, [out] IMediaStream **ppNewStream); - HRESULT OpenFile([in] LPCWSTR pszFileName, [in] DWORD dwFlags); - HRESULT OpenMoniker([in] IBindCtx *pCtx, [in] IMoniker *pMoniker, [in] DWORD dwFlags); - HRESULT Render([in] DWORD dwFlags); -} + HRESULT Initialize( + [in] STREAM_TYPE StreamType, + [in] DWORD dwFlags, + [in, optional] IGraphBuilder *pFilterGraph); + + HRESULT GetFilterGraph( + [out] IGraphBuilder **ppGraphBuilder); + + HRESULT GetFilter( + [out] IMediaStreamFilter **ppFilter); + + HRESULT AddMediaStream( + [in, optional] IUnknown *pStreamObject, + [in, optional] const MSPID *PurposeId, + [in] DWORD dwFlags, + [out, optional] IMediaStream **ppNewStream); + + HRESULT OpenFile( + [in] LPCWSTR pszFileName, + [in] DWORD dwFlags); + + HRESULT OpenMoniker( + [in] IBindCtx *pCtx, + [in] IMoniker *pMoniker, + [in] DWORD dwFlags); + + HRESULT Render( + [in] DWORD dwFlags); +} + [ object, @@ -88,12 +128,25 @@ ] interface IAMMediaStream : IMediaStream { - HRESULT Initialize([in] IUnknown *pSourceObject, [in] DWORD dwFlags, [in] REFMSPID PurposeId, [in] const STREAM_TYPE StreamType); - HRESULT SetState([in] FILTER_STATE State); - HRESULT JoinAMMultiMediaStream([in] IAMMultiMediaStream *pAMMultiMediaStream); - HRESULT JoinFilter([in] IMediaStreamFilter *pMediaStreamFilter); - HRESULT JoinFilterGraph([in] IFilterGraph *pFilterGraph); -}; + HRESULT Initialize( + [in, optional] IUnknown *pSourceObject, + [in] DWORD dwFlags, + [in] REFMSPID PurposeId, + [in] const STREAM_TYPE StreamType); + + HRESULT SetState( + [in] FILTER_STATE State); + + HRESULT JoinAMMultiMediaStream( + [in] IAMMultiMediaStream *pAMMultiMediaStream); + + HRESULT JoinFilter( + [in] IMediaStreamFilter *pMediaStreamFilter); + + HRESULT JoinFilterGraph( + [in] IFilterGraph *pFilterGraph); +} + [ object, @@ -103,16 +156,35 @@ ] interface IMediaStreamFilter : IBaseFilter { - HRESULT AddMediaStream([in] IAMMediaStream *pAMMediaStream); - HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream); - HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream); - HRESULT SupportSeeking([in] BOOL bRenderer); - HRESULT ReferenceTimeToStreamTime([in] [out] REFERENCE_TIME *pTime); - HRESULT GetCurrentStreamTime([out] REFERENCE_TIME *pCurrentStreamTime); - HRESULT WaitUntil([in] REFERENCE_TIME WaitStreamTime); - HRESULT Flush([in] BOOL bCancelEOS); - HRESULT EndOfStream(); -}; + HRESULT AddMediaStream( + [in] IAMMediaStream *pAMMediaStream); + + HRESULT GetMediaStream( + [in] REFMSPID idPurpose, + [out] IMediaStream **ppMediaStream); + + HRESULT EnumMediaStreams( + [in] long Index, + [out] IMediaStream **ppMediaStream); + + HRESULT SupportSeeking( + [in] BOOL bRenderer); + + HRESULT ReferenceTimeToStreamTime( + [in] [out] REFERENCE_TIME *pTime); + + HRESULT GetCurrentStreamTime( + [out] REFERENCE_TIME *pCurrentStreamTime); + + HRESULT WaitUntil( + [in] REFERENCE_TIME WaitStreamTime); + + HRESULT Flush( + [in] BOOL bCancelEOS); + + HRESULT EndOfStream(); +} + [ object, @@ -122,8 +194,9 @@ ] interface IDirectDrawMediaSampleAllocator : IUnknown { - HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw); -}; + HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw); +} + [ object, @@ -133,9 +206,13 @@ ] interface IDirectDrawMediaSample : IUnknown { - HRESULT GetSurfaceAndReleaseLock([out] IDirectDrawSurface **ppDirectDrawSurface, [out] RECT * pRect); - HRESULT LockMediaSamplePointer(void); -}; + HRESULT GetSurfaceAndReleaseLock( + [out] IDirectDrawSurface **ppDirectDrawSurface, + [out] RECT * pRect); + + HRESULT LockMediaSamplePointer(void); +} + [ object, @@ -146,19 +223,30 @@ interface IAMMediaTypeStream : IMediaStream { - HRESULT GetFormat([out] AM_MEDIA_TYPE * pMediaType, [in] DWORD dwFlags); - HRESULT SetFormat([in] AM_MEDIA_TYPE * pMediaType, [in] DWORD dwFlags); - HRESULT CreateSample([in] long lSampleSize, [in] BYTE * pbBuffer, [in] DWORD dwFlags, [in] IUnknown *pUnkOuter, [out] IAMMediaTypeSample ** ppAMMediaTypeSample); - HRESULT GetStreamAllocatorRequirements([out] ALLOCATOR_PROPERTIES *pProps); - HRESULT SetStreamAllocatorRequirements([in] ALLOCATOR_PROPERTIES *pProps); -}; - - - - - - - [ + HRESULT GetFormat( + [out] AM_MEDIA_TYPE * pMediaType, + [in] DWORD dwFlags); + + HRESULT SetFormat( + [in] AM_MEDIA_TYPE * pMediaType, + [in] DWORD dwFlags); + + HRESULT CreateSample( + [in] long lSampleSize, + [in, optional] BYTE * pbBuffer, + [in] DWORD dwFlags, + [in, optional] IUnknown *pUnkOuter, + [out] IAMMediaTypeSample ** ppAMMediaTypeSample); + + HRESULT GetStreamAllocatorRequirements( + [out] ALLOCATOR_PROPERTIES *pProps); + + HRESULT SetStreamAllocatorRequirements( + [in] ALLOCATOR_PROPERTIES *pProps); +} + + +[ object, local, uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D), @@ -166,47 +254,66 @@ ] interface IAMMediaTypeSample : IStreamSample { - HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize); - HRESULT GetPointer([out] BYTE ** ppBuffer); - long GetSize(void); - HRESULT GetTime([out] REFERENCE_TIME * pTimeStart, [out] REFERENCE_TIME * pTimeEnd); - HRESULT SetTime([in] REFERENCE_TIME * pTimeStart, [in] REFERENCE_TIME * pTimeEnd); - HRESULT IsSyncPoint(void); - HRESULT SetSyncPoint(BOOL bIsSyncPoint); - HRESULT IsPreroll(void); - HRESULT SetPreroll(BOOL bIsPreroll); - long GetActualDataLength(void); - HRESULT SetActualDataLength(long Len); - HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType); - HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType); - HRESULT IsDiscontinuity(void); - HRESULT SetDiscontinuity(BOOL bDiscontinuity); - HRESULT GetMediaTime([out] LONGLONG * pTimeStart, [out] LONGLONG * pTimeEnd); - HRESULT SetMediaTime([in] LONGLONG * pTimeStart, [in] LONGLONG * pTimeEnd); -}; - -[ - uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D) -] - -library DirectShowStreamLib -{ - importlib("stdole2.tlb"); - [ - uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45) - ] - coclass AMMultiMediaStream - { - [default] dispinterface IDirectShowStream; - }; -}; - -cpp_quote("#ifndef __cplusplus") -cpp_quote("EXTERN_C const CLSID CLSID_AMMultiMediaStream;") -cpp_quote("#endif") - -cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") -cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") -cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") -cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") - + HRESULT SetPointer( + [in] BYTE *pBuffer, + [in] long lSize); + + HRESULT GetPointer( + [out] BYTE ** ppBuffer); + + long GetSize(void); + + HRESULT GetTime( + [out] REFERENCE_TIME * pTimeStart, + [out] REFERENCE_TIME * pTimeEnd); + + HRESULT SetTime( + [in] REFERENCE_TIME * pTimeStart, + [in] REFERENCE_TIME * pTimeEnd); + + HRESULT IsSyncPoint(void); + + HRESULT SetSyncPoint( + BOOL bIsSyncPoint); + + HRESULT IsPreroll(void); + + HRESULT SetPreroll( + BOOL bIsPreroll); + + long GetActualDataLength(void); + + HRESULT SetActualDataLength(long Len); + + HRESULT GetMediaType( + AM_MEDIA_TYPE **ppMediaType); + + HRESULT SetMediaType( + AM_MEDIA_TYPE *pMediaType); + + HRESULT IsDiscontinuity(void); + + HRESULT SetDiscontinuity( + BOOL bDiscontinuity); + + HRESULT GetMediaTime( + [out] LONGLONG * pTimeStart, + [out] LONGLONG * pTimeEnd); + + HRESULT SetMediaTime( + [in] LONGLONG * pTimeStart, + [in] LONGLONG * pTimeEnd); +} + +[ + uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45) +] +coclass AMMultiMediaStream +{ + [default] dispinterface IDirectShowStream; +} + +cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") Modified: trunk/reactos/include/dxsdk/austream.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/austream.idl…
============================================================================== --- trunk/reactos/include/dxsdk/austream.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/austream.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,8 +1,24 @@ +/* + * Copyright 2004 Christian Costa + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; import "mmstream.idl"; -// hack cpp_quote("#if 0") typedef struct tWAVEFORMATEX WAVEFORMATEX; cpp_quote ("#endif") @@ -18,26 +34,36 @@ uuid(f7537560-a3be-11d0-8212-00c04fc32c45), pointer_default(unique) ] - interface IAudioMediaStream : IMediaStream { - HRESULT GetFormat([out] WAVEFORMATEX *pWaveFormatCurrent); - HRESULT SetFormat([in] const WAVEFORMATEX *lpWaveFormat); - HRESULT CreateSample([in] IAudioData *pAudioData, [in] DWORD dwFlags, [out] IAudioStreamSample **ppSample); + HRESULT GetFormat( + [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent + ); + + HRESULT SetFormat( + [in] const WAVEFORMATEX *lpWaveFormat); + + HRESULT CreateSample( + [in] IAudioData *pAudioData, + [in] DWORD dwFlags, + [out] IAudioStreamSample **ppSample + ); } + [ object, local, -uuid(54c719c0-af60-11d0-8212-00c04fc32c45), +uuid(345fee00-aba5-11d0-8212-00c04fc32c45), pointer_default(unique) ] +interface IAudioStreamSample : IStreamSample +{ + HRESULT GetAudioData( + [out] IAudioData **ppAudio + ); +} -interface IAudioData : IMemoryData -{ - HRESULT GetFormat([out] WAVEFORMATEX *pWaveFormatCurrent); - HRESULT SetFormat([in] const WAVEFORMATEX *lpWaveFormat); -} [ object, @@ -47,18 +73,36 @@ ] interface IMemoryData : IUnknown { - HRESULT SetBuffer([in] DWORD cbSize, [in] BYTE *pbData, [in] DWORD dwFlags); - HRESULT GetInfo([out] DWORD *pdwLength, [out] BYTE **ppbData, [out] DWORD *pcbActualData); - HRESULT SetActual([in] DWORD cbDataValid); + HRESULT SetBuffer( + [in] DWORD cbSize, + [in] BYTE *pbData, + [in] DWORD dwFlags + ); + + HRESULT GetInfo( + [out] DWORD *pdwLength, + [out] BYTE **ppbData, + [out] DWORD *pcbActualData + ); + HRESULT SetActual( + [in] DWORD cbDataValid + ); } + [ object, local, -uuid(345fee00-aba5-11d0-8212-00c04fc32c45), +uuid(54c719c0-af60-11d0-8212-00c04fc32c45), pointer_default(unique) ] -interface IAudioStreamSample : IStreamSample +interface IAudioData : IMemoryData { - HRESULT GetAudioData([out] IAudioData **ppAudio); + HRESULT GetFormat( + [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent + ); + + HRESULT SetFormat( + [in] const WAVEFORMATEX *lpWaveFormat + ); } Modified: trunk/reactos/include/dxsdk/ddstream.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/ddstream.idl…
============================================================================== --- trunk/reactos/include/dxsdk/ddstream.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/ddstream.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,35 +1,39 @@ +/* + * Copyright 2004 Christian Costa + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; import "mmstream.idl"; -cpp_quote("#if 0") +cpp_quote("#ifndef __WINE_DDRAW_H") typedef void * LPDDSURFACEDESC; typedef struct tDDSURFACEDESC DDSURFACEDESC; +interface IDirectDraw; +interface IDirectDrawSurface; +interface IDirectDrawPalette; cpp_quote("#endif") cpp_quote("#include <ddraw.h>") -enum -{ - DDSFF_PROGRESSIVERENDER = 0x00000001 +enum { + DDSFF_PROGRESSIVERENDER = 0x00000001 }; -interface IDirectDraw; -interface IDirectDrawSurface; -interface IDirectDrawPalette; interface IDirectDrawMediaStream; interface IDirectDrawStreamSample; - - [ -object, -local, -uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D), -pointer_default(unique) -] -interface IDirectDrawStreamSample : IStreamSample -{ - HRESULT GetSurface([out] IDirectDrawSurface ** ppDirectDrawSurface, [out] RECT * pRect); - HRESULT SetRect([in] const RECT * pRect); -}; [ object, @@ -39,12 +43,46 @@ ] interface IDirectDrawMediaStream : IMediaStream { - HRESULT GetFormat([out] DDSURFACEDESC *pDDSDCurrent, [out] IDirectDrawPalette **ppDirectDrawPalette, [out] DDSURFACEDESC *pDDSDDesired, [out] DWORD *pdwFlags); - HRESULT SetFormat([in] const DDSURFACEDESC *pDDSurfaceDesc, [in] IDirectDrawPalette *pDirectDrawPalette); - HRESULT GetDirectDraw([out] IDirectDraw **ppDirectDraw); - HRESULT SetDirectDraw([in] IDirectDraw *pDirectDraw); - HRESULT CreateSample([in] IDirectDrawSurface *pSurface, [in] const RECT *pRect, [in] DWORD dwFlags, [out]IDirectDrawStreamSample **ppSample); - HRESULT GetTimePerFrame([out] STREAM_TIME *pFrameTime); -}; + HRESULT GetFormat( + [out, optional] DDSURFACEDESC *pDDSDCurrent, + [out, optional] IDirectDrawPalette **ppDirectDrawPalette, + [out, optional] DDSURFACEDESC *pDDSDDesired, + [out, optional] DWORD *pdwFlags); + + HRESULT SetFormat( + [in] const DDSURFACEDESC *pDDSurfaceDesc, + [in, optional] IDirectDrawPalette *pDirectDrawPalette); + + HRESULT GetDirectDraw( + [out] IDirectDraw **ppDirectDraw); + + HRESULT SetDirectDraw( + [in] IDirectDraw *pDirectDraw); + + HRESULT CreateSample( + [in, optional] IDirectDrawSurface *pSurface, + [in, optional] const RECT *pRect, + [in] DWORD dwFlags, + [out] IDirectDrawStreamSample **ppSample); + + HRESULT GetTimePerFrame( + [out] STREAM_TIME *pFrameTime); +} +[ +object, +local, +uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D), +pointer_default(unique) +] +interface IDirectDrawStreamSample : IStreamSample +{ + HRESULT GetSurface( + [out, optional] IDirectDrawSurface ** ppDirectDrawSurface, + [out, optional] RECT * pRect); + + HRESULT SetRect( + [in] const RECT * pRect); + +} Modified: trunk/reactos/include/dxsdk/devenum.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/devenum.idl?…
============================================================================== --- trunk/reactos/include/dxsdk/devenum.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/devenum.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2002 Robert Shearman + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "oaidl.idl"; cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001") cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002") @@ -11,9 +30,8 @@ ] interface ICreateDevEnum : IUnknown { - import "oaidl.idl"; - - HRESULT CreateClassEnumerator( [in] REFCLSID clsidDeviceClass, - [out] IEnumMoniker ** ppEnumMoniker, - [in] DWORD dwFlags); + HRESULT CreateClassEnumerator( + [in] REFCLSID clsidDeviceClass, + [out] IEnumMoniker ** ppEnumMoniker, + [in] DWORD dwFlags); } Removed: trunk/reactos/include/dxsdk/dvdif.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/dvdif.idl?re…
============================================================================== --- trunk/reactos/include/dxsdk/dvdif.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/dvdif.idl (removed) @@ -1,6 +1,0 @@ -import "unknwn.idl"; -import "objidl.idl"; - -cpp_quote("#include <ddraw.h>") - -// fixme it is not completed Modified: trunk/reactos/include/dxsdk/dxsdk.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/dxsdk.rbuild…
============================================================================== --- trunk/reactos/include/dxsdk/dxsdk.rbuild [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/dxsdk.rbuild [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -5,7 +5,6 @@ <file>austream.idl</file> <file>ddstream.idl</file> <file>dmodshow.idl</file> - <file>dyngraph.idl</file> <file>mixerocx.idl</file> <file>mediaobj.idl</file> <file>medparam.idl</file> @@ -14,8 +13,6 @@ <file>tvratings.idl</file> <file>vidcap.idl</file> <file>Videoacc.idl</file> - <file>Vmrender.idl</file> <file>strmif.idl</file> - <file>dvdif.idl</file> <file>devenum.idl</file> </module> Modified: trunk/reactos/include/dxsdk/dyngraph.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/dyngraph.idl…
============================================================================== --- trunk/reactos/include/dxsdk/dyngraph.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/dyngraph.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,24 +1,58 @@ - - - cpp_quote("#if 0") -import "unknwn.idl"; -typedef int IBaseFilter ; -typedef int IEnumFilters; -typedef int IPin; -typedef int REFERENCE_TIME; -typedef int AM_MEDIA_TYPE; -cpp_quote("#endif") +/* + * Copyright (C) 2002 Robert Shearman + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ interface IPinConnection; interface IPinFlowControl; interface IGraphConfig; interface IGraphConfigCallback; +[ + local, + object, + uuid(4a9a62d3-27d4-403d-91e9-89f540e55534), + pointer_default(unique) +] +interface IPinConnection : IUnknown +{ + HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt); + + HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent); + + HRESULT IsEndPin(); + + HRESULT DynamicDisconnect(); +} + +[ + local, + object, + uuid(c56e9858-dbf3-4f6b-8119-384af2060deb), + pointer_default(unique) +] +interface IPinFlowControl : IUnknown +{ + HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent); +} + enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS { AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001, }; - typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS { @@ -26,7 +60,6 @@ AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002, AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004 } AM_GRAPH_CONFIG_RECONNECT_FLAGS; - enum _REM_FILTER_FLAGS { @@ -36,61 +69,55 @@ typedef enum _AM_FILTER_FLAGS { AM_FILTER_FLAGS_REMOVABLE = 0x00000001 - } AM_FILTER_FLAGS; - +} AM_FILTER_FLAGS; [ - local, - object, - uuid(4a9a62d3-27d4-403d-91e9-89f540e55534), - pointer_default(unique) -] -interface IPinConnection : IUnknown -{ - HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt); - HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent); - HRESULT IsEndPin(); - HRESULT DynamicDisconnect(); -}; - -[ - local, - object, - uuid(c56e9858-dbf3-4f6b-8119-384af2060deb), - pointer_default(unique) -] -interface IPinFlowControl : IUnknown -{ - HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent); -} - - - -[ - local, - object, - uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88), - pointer_default(unique) + local, + object, + uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88), + pointer_default(unique) ] interface IGraphConfig : IUnknown { - HRESULT Reconnect([in] IPin *pOutputPin, [in] IPin *pInputPin, [in] const AM_MEDIA_TYPE *pmtFirstConnection, IBaseFilter *pUsingFilter, [in] HANDLE hAbortEvent, [in] DWORD dwFlags); - HRESULT Reconfigure([in] IGraphConfigCallback *pCallback, [in] PVOID pvContext, [in] DWORD dwFlags, [in] HANDLE hAbortEvent); + HRESULT Reconnect( + [in] IPin *pOutputPin, + [in] IPin *pInputPin, + [in] const AM_MEDIA_TYPE *pmtFirstConnection, + [in] IBaseFilter *pUsingFilter, + [in] HANDLE hAbortEvent, + [in] DWORD dwFlags); + + HRESULT Reconfigure( + [in] IGraphConfigCallback *pCallback, + [in] PVOID pvContext, + [in] DWORD dwFlags, + [in] HANDLE hAbortEvent); + HRESULT AddFilterToCache([in] IBaseFilter *pFilter); + HRESULT EnumCacheFilter([out] IEnumFilters **pEnum); + HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter); + HRESULT GetStartTime([out] REFERENCE_TIME *prtStart); - HRESULT PushThroughData([in] IPin *pOutputPin, [in] IPinConnection *pConnection, [in] HANDLE hEventAbort); + + HRESULT PushThroughData( + [in] IPin *pOutputPin, + [in] IPinConnection *pConnection, + [in] HANDLE hEventAbort); + HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags); + HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags); - HRESULT RemoveFilterEx( [in] IBaseFilter *pFilter, DWORD Flags ); + + HRESULT RemoveFilterEx([in] IBaseFilter *pFilter, DWORD Flags); } [ - local, - object, - uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375), - pointer_default(unique) + local, + object, + uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375), + pointer_default(unique) ] interface IGraphConfigCallback : IUnknown { @@ -105,12 +132,19 @@ ] interface IFilterChain : IUnknown { - HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); - HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); - HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); - HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); + HRESULT StartChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); + + HRESULT PauseChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); + + HRESULT StopChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); + + HRESULT RemoveChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); } - - - - Modified: trunk/reactos/include/dxsdk/mediaobj.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/mediaobj.idl…
============================================================================== --- trunk/reactos/include/dxsdk/mediaobj.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/mediaobj.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,189 +1,74 @@ +/* + * Copyright (C) 2002 Alexandre Julliard + * Copyright (C) 2004 Vincent Béron + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +cpp_quote("#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)") +cpp_quote("#include <windows.h>") +cpp_quote("#include <ole2.h>") +cpp_quote("#endif") import "unknwn.idl"; import "objidl.idl"; +interface IDMOQualityControl; +interface IDMOVideoOutputOptimizations; +interface IMediaBuffer; +interface IMediaObject; +interface IMediaObjectInPlace; -cpp_quote("#ifdef __strmif_h__") -cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;") -cpp_quote("#else") typedef struct _DMOMediaType { - GUID majortype; - GUID subtype; - BOOL bFixedSizeSamples; - BOOL bTemporalCompression; - ULONG lSampleSize; - GUID formattype; + GUID majortype; + GUID subtype; + BOOL bFixedSizeSamples; + BOOL bTemporalCompression; + ULONG lSampleSize; + GUID formattype; IUnknown *pUnk; - ULONG cbFormat; - [size_is(cbFormat)] BYTE * pbFormat; + ULONG cbFormat; + BYTE *pbFormat; } DMO_MEDIA_TYPE; -typedef LONGLONG REFERENCE_TIME; -cpp_quote("#endif") - - -enum _DMO_INPUT_DATA_BUFFER_FLAGS -{ - DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, - DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002, - DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004 -}; - -enum _DMO_OUTPUT_DATA_BUFFER_FLAGS -{ - DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, - DMO_OUTPUT_DATA_BUFFERF_TIME = 0x00000002, - DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004, - DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x01000000 -}; - -enum _DMO_INPUT_STATUS_FLAGS -{ - DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001 -}; - -enum _DMO_INPUT_STREAM_INFO_FLAGS -{ - DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x00000001, - DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, - DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004, - DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x00000008 -}; - -enum _DMO_OUTPUT_STREAM_INFO_FLAGS -{ - DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x00000001, - DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, - DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004, - DMO_OUTPUT_STREAMF_DISCARDABLE = 0x00000008, - DMO_OUTPUT_STREAMF_OPTIONAL = 0x00000010 -}; - -enum _DMO_SET_TYPE_FLAGS -{ - DMO_SET_TYPEF_TEST_ONLY = 0x00000001, - DMO_SET_TYPEF_CLEAR = 0x00000002 -}; - -enum _DMO_PROCESS_OUTPUT_FLAGS -{ - DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001 -}; - -enum _DMO_INPLACE_PROCESS_FLAGS -{ - DMO_INPLACE_NORMAL = 0x00000000, - DMO_INPLACE_ZERO = 0x00000001 -}; - -enum _DMO_QUALITY_STATUS_FLAGS -{ - DMO_QUALITY_STATUS_ENABLED = 0x00000001 -}; - -enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS -{ - DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001 -}; - - +/***************************************************************************** + * IEnumDMO interface + */ [ object, - uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837) -] -interface IMediaBuffer : IUnknown -{ - HRESULT SetLength(DWORD cbLength); - HRESULT GetMaxLength([out] DWORD *pcbMaxLength); - HRESULT GetBufferAndLength([out] BYTE **ppBuffer, [out] DWORD *pcbLength); -} - - -typedef struct _DMO_OUTPUT_DATA_BUFFER -{ - IMediaBuffer *pBuffer; - DWORD dwStatus; - REFERENCE_TIME rtTimestamp; - REFERENCE_TIME rtTimelength; -} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER; - - -[ - object, - uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4) -] -interface IMediaObject : IUnknown -{ - HRESULT GetStreamCount([out] DWORD *pcInputStreams, [out] DWORD *pcOutputStreams); - HRESULT GetInputStreamInfo(DWORD dwInputStreamIndex, [out] DWORD *pdwFlags); - HRESULT GetOutputStreamInfo(DWORD dwOutputStreamIndex, [out] DWORD *pdwFlags); - HRESULT GetInputType(DWORD dwInputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT GetOutputType(DWORD dwOutputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT SetInputType(DWORD dwInputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags); - HRESULT SetOutputType(DWORD dwOutputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags); - HRESULT GetInputCurrentType(DWORD dwInputStreamIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT GetOutputCurrentType(DWORD dwOutputStreamIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT GetInputSizeInfo(DWORD dwInputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbMaxLookahead, [out] DWORD *pcbAlignment); - HRESULT GetOutputSizeInfo(DWORD dwOutputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbAlignment); - HRESULT GetInputMaxLatency(DWORD dwInputStreamIndex, [out] REFERENCE_TIME *prtMaxLatency); - HRESULT SetInputMaxLatency(DWORD dwInputStreamIndex, REFERENCE_TIME rtMaxLatency); - HRESULT Flush(); - HRESULT Discontinuity(DWORD dwInputStreamIndex); - HRESULT AllocateStreamingResources(); - HRESULT FreeStreamingResources(); - HRESULT GetInputStatus(DWORD dwInputStreamIndex, [out] DWORD *dwFlags); - HRESULT ProcessInput(DWORD dwInputStreamIndex, IMediaBuffer *pBuffer, DWORD dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength); - HRESULT ProcessOutput(DWORD dwFlags,DWORD cOutputBufferCount, [in,out,size_is(cOutputBufferCount)] - DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, [out] DWORD *pdwStatus); - HRESULT Lock(LONG bLock); -}; - - -[ -object, -uuid(2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f) + uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F), + pointer_default(unique) ] interface IEnumDMO : IUnknown { - HRESULT Next(DWORD cItemsToFetch, [out, size_is(cItemsToFetch), length_is(*pcItemsFetched)] CLSID *pCLSID, [out, size_is(cItemsToFetch), length_is(*pcItemsFetched), string] WCHAR **Names, [out] DWORD *pcItemsFetched); - HRESULT Skip(DWORD cItemsToSkip); - HRESULT Reset(void); - HRESULT Clone([out] IEnumDMO **ppEnum); -} + [local] + HRESULT Next( + [in] DWORD cItemsToFetch, + [out] CLSID *pCLSID, + [out] WCHAR **Names, + [out] DWORD *pcItemsFetched + ); -[ -object, -uuid(651b9ad0-0fc7-4aa9-9538-d89931010741) -] -interface IMediaObjectInPlace : IUnknown -{ - HRESULT Process([in] ULONG ulSize, [in,out,size_is(ulSize)] BYTE* pData, [in] REFERENCE_TIME refTimeStart, [in] DWORD dwFlags); - HRESULT Clone([out] IMediaObjectInPlace **ppMediaObject); - HRESULT GetLatency([out] REFERENCE_TIME *pLatencyTime); -} + HRESULT Skip( + [in] DWORD cItemsToSkip + ); -[ -object, -uuid(65abea96-cf36-453f-af8a-705e98f16260) -] -interface IDMOQualityControl : IUnknown -{ - HRESULT SetNow([in] REFERENCE_TIME rtNow); - HRESULT SetStatus([in] DWORD dwFlags); - HRESULT GetStatus([out] DWORD *pdwFlags); -} + HRESULT Reset(); -[ -object, -uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac) -] -interface IDMOVideoOutputOptimizations : IUnknown -{ - HRESULT QueryOperationModePreferences (ULONG ulOutputStreamIndex, DWORD *pdwRequestedCapabilities); - HRESULT SetOperationMode (ULONG ulOutputStreamIndex, DWORD dwEnabledFeatures); - HRESULT GetCurrentOperationMode (ULONG ulOutputStreamIndex, DWORD *pdwEnabledFeatures); - HRESULT GetCurrentSampleRequirements (ULONG ulOutputStreamIndex, DWORD *pdwRequestedFeatures + HRESULT Clone( + [out] IEnumDMO **ppEnum ); } - Modified: trunk/reactos/include/dxsdk/medparam.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/medparam.idl…
============================================================================== --- trunk/reactos/include/dxsdk/medparam.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/medparam.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -48,7 +48,6 @@ WCHAR szLabel[32]; } MP_PARAMINFO; -typedef DWORD DWORD; const DWORD DWORD_ALLPARAMS = -1; typedef DWORD MP_TIMEDATA; Modified: trunk/reactos/include/dxsdk/mmstream.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/mmstream.idl…
============================================================================== --- trunk/reactos/include/dxsdk/mmstream.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/mmstream.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,35 +1,45 @@ - +/* + * Copyright 2004 Christian Costa + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; -cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, 0xA35FF56A, 0x9FDA, 0x11D0, 0x8F, 0xDF, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);") -cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio, 0xA35FF56B, 0x9FDA, 0x11D0, 0x8F, 0xDF, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);") +cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)") +cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)") +cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)") +cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)") +cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)") -cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)") -cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)") -cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)") -cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)") -cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)") -cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)") -cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)") -cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)") -cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)") -cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)") -cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)") -cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)") -cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)") -cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)") -cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)") +cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)") +cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)") +cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)") +cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)") +cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)") +cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)") +cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)") +cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)") +cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)") +cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)") +cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") +cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio, 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") - -// FIXME HACK remove the // for two cpp_quote -cpp_quote("#if 0"); - typedef LPVOID PAPCFUNC; -cpp_quote("#endif"); - -cpp_quote("#if(_WIN32_WINNT < 0x0400)") -cpp_quote("typedef void (__stdcall * PAPCFUNC)(DWORD_PTR dwParam);") +cpp_quote("#if 0") +typedef void* PAPCFUNC; cpp_quote("#endif") typedef LONGLONG STREAM_TIME; @@ -37,43 +47,39 @@ typedef GUID MSPID; typedef REFGUID REFMSPID; -enum -{ - MMSSF_HASCLOCK = 0x00000001, - MMSSF_SUPPORTSEEK = 0x00000002, - MMSSF_ASYNCHRONOUS = 0x00000004 +typedef enum { + STREAMTYPE_READ = 0, + STREAMTYPE_WRITE = 1, + STREAMTYPE_TRANSFORM = 2 +} STREAM_TYPE; + +typedef enum { + STREAMSTATE_STOP = 0, + STREAMSTATE_RUN = 1 +} STREAM_STATE; + + +typedef enum { + COMPSTAT_NOUPDATEOK = 0x00000001, + COMPSTAT_WAIT = 0x00000002, + COMPSTAT_ABORT = 0x00000004 +} COMPLETION_STATUS_FLAGS; + +enum { + MMSSF_HASCLOCK = 0x00000001, + MMSSF_SUPPORTSEEK = 0x00000002, + MMSSF_ASYNCHRONOUS = 0x00000004 }; -typedef enum -{ - STREAMTYPE_READ = 0, - STREAMTYPE_WRITE = 1, - STREAMTYPE_TRANSFORM= 2 -} STREAM_TYPE; - -enum -{ - SSUPDATE_ASYNC = 0x00000001, - SSUPDATE_CONTINUOUS = 0x00000002 +enum { + SSUPDATE_ASYNC = 0x00000001, + SSUPDATE_CONTINUOUS = 0x00000002 }; - -typedef enum -{ - COMPSTAT_NOUPDATEOK = 0x00000001, - COMPSTAT_WAIT = 0x00000002, - COMPSTAT_ABORT = 0x00000004 -} COMPLETION_STATUS_FLAGS; - - -typedef enum -{ - STREAMSTATE_STOP = 0, - STREAMSTATE_RUN = 1 -} STREAM_STATE; interface IMultiMediaStream; interface IMediaStream; interface IStreamSample; + [ object, @@ -81,18 +87,38 @@ uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D), pointer_default(unique) ] -interface IMultiMediaStream : IUnknown -{ - HRESULT GetInformation([out] DWORD *pdwFlags, [out] STREAM_TYPE *pStreamType); - HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream); - HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream); - HRESULT GetState([out] STREAM_STATE *pCurrentState); - HRESULT SetState([in] STREAM_STATE NewState); - HRESULT GetTime([out] STREAM_TIME *pCurrentTime); - HRESULT GetDuration([out] STREAM_TIME *pDuration); - HRESULT Seek([in] STREAM_TIME SeekTime); - HRESULT GetEndOfStreamEventHandle([out] HANDLE *phEOS); -}; +interface IMultiMediaStream : IUnknown { + + HRESULT GetInformation( + [out, optional] DWORD *pdwFlags, + [out, optional] STREAM_TYPE *pStreamType); + + HRESULT GetMediaStream( + [in] REFMSPID idPurpose, + [out] IMediaStream **ppMediaStream); + + HRESULT EnumMediaStreams( + [in] long Index, + [out] IMediaStream **ppMediaStream); + + HRESULT GetState( + [out] STREAM_STATE *pCurrentState); + + HRESULT SetState( + [in] STREAM_STATE NewState); + + HRESULT GetTime( + [out] STREAM_TIME *pCurrentTime); + + HRESULT GetDuration( + [out] STREAM_TIME *pDuration); + + HRESULT Seek( + [in] STREAM_TIME SeekTime); + + HRESULT GetEndOfStreamEventHandle( + [out] HANDLE *phEOS); +} [ @@ -100,15 +126,31 @@ uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D), pointer_default(unique) ] -interface IMediaStream : IUnknown -{ - HRESULT GetMultiMediaStream([out] IMultiMediaStream **ppMultiMediaStream); - HRESULT GetInformation([out] MSPID *pPurposeId, [out] STREAM_TYPE *pType); - HRESULT SetSameFormat([in] IMediaStream *pStreamThatHasDesiredFormat, [in] DWORD dwFlags); - HRESULT AllocateSample([in] DWORD dwFlags, [out] IStreamSample **ppSample); - HRESULT CreateSharedSample([in] IStreamSample *pExistingSample, [in] DWORD dwFlags, [out] IStreamSample **ppNewSample); - HRESULT SendEndOfStream(DWORD dwFlags); -}; +interface IMediaStream : IUnknown { + + HRESULT GetMultiMediaStream( + [out] IMultiMediaStream **ppMultiMediaStream); + + HRESULT GetInformation( + [out, optional] MSPID *pPurposeId, + [out, optional] STREAM_TYPE *pType); + + HRESULT SetSameFormat( + [in] IMediaStream *pStreamThatHasDesiredFormat, + [in] DWORD dwFlags); + + HRESULT AllocateSample( + [in] DWORD dwFlags, + [out] IStreamSample **ppSample); + + HRESULT CreateSharedSample( + [in] IStreamSample *pExistingSample, + [in] DWORD dwFlags, + [out] IStreamSample **ppNewSample); + + HRESULT SendEndOfStream(DWORD dwFlags); +} + [ object, @@ -116,13 +158,27 @@ uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D), pointer_default(unique) ] +interface IStreamSample : IUnknown { + + HRESULT GetMediaStream( + [in] IMediaStream **ppMediaStream); -interface IStreamSample : IUnknown -{ - HRESULT GetMediaStream([in] IMediaStream **ppMediaStream); - HRESULT GetSampleTimes([out] STREAM_TIME * pStartTime, [out] STREAM_TIME * pEndTime, [out] STREAM_TIME * pCurrentTime); - HRESULT SetSampleTimes([in] const STREAM_TIME *pStartTime, [in] const STREAM_TIME *pEndTime); - HRESULT Update([in] DWORD dwFlags, [in] HANDLE hEvent, [in] PAPCFUNC pfnAPC, [in] DWORD_PTR dwAPCData); - HRESULT CompletionStatus( [in] DWORD dwFlags, [in] DWORD dwMilliseconds); -}; + HRESULT GetSampleTimes( + [out, optional] STREAM_TIME * pStartTime, + [out, optional] STREAM_TIME * pEndTime, + [out, optional] STREAM_TIME * pCurrentTime); + HRESULT SetSampleTimes( + [in, optional] const STREAM_TIME *pStartTime, + [in, optional] const STREAM_TIME *pEndTime); + + HRESULT Update( + [in] DWORD dwFlags, + [in, optional] HANDLE hEvent, + [in, optional] PAPCFUNC pfnAPC, + [in, optional] DWORD dwAPCData); + + HRESULT CompletionStatus( + [in] DWORD dwFlags, + [in, optional] DWORD dwMilliseconds); +} Modified: trunk/reactos/include/dxsdk/strmif.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/strmif.idl?r…
============================================================================== --- trunk/reactos/include/dxsdk/strmif.idl [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/strmif.idl [iso-8859-1] Wed Sep 10 02:41:27 2008 @@ -1,9 +1,30 @@ +/* + * Copyright (C) 2002 Robert Shearman + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ -import "unknwn.idl"; import "objidl.idl"; + #include <devenum.idl> + #include <axcore.idl> + #include <axextend.idl> -#include <dvdif.idl> + #include <dyngraph.idl> -#include "Vmrender.idl" + +/* TODO: #include <dvdif.h> */ +#include <vmrender.idl>
16 years, 3 months
1
0
0
0
[cwittich] 36105: sync some idl files and mshtml headers with wine
by cwittich@svn.reactos.org
Author: cwittich Date: Wed Sep 10 02:40:52 2008 New Revision: 36105 URL:
http://svn.reactos.org/svn/reactos?rev=36105&view=rev
Log: sync some idl files and mshtml headers with wine Modified: trunk/reactos/include/psdk/axcore.idl trunk/reactos/include/psdk/axextend.idl trunk/reactos/include/psdk/dimm.idl trunk/reactos/include/psdk/indexsrv.idl trunk/reactos/include/psdk/mshtmdid.h trunk/reactos/include/psdk/mshtml.idl trunk/reactos/include/psdk/oaidl.idl trunk/reactos/include/psdk/objidl.idl trunk/reactos/include/psdk/shobjidl.idl trunk/reactos/include/psdk/stdole2.idl trunk/reactos/include/psdk/strmif.idl trunk/reactos/include/psdk/tom.idl trunk/reactos/include/psdk/unknwn.idl trunk/reactos/include/psdk/wtypes.idl Modified: trunk/reactos/include/psdk/axcore.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/axcore.idl?re…
============================================================================== --- trunk/reactos/include/psdk/axcore.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/axcore.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -48,7 +48,11 @@ cpp_quote("#define MAX_FILTER_NAME 128") typedef LONGLONG REFERENCE_TIME; + +cpp_quote("#ifndef REFTIME_DEFINED") +cpp_quote("#define REFTIME_DEFINED") typedef DOUBLE REFTIME; +cpp_quote("#endif") typedef DWORD_PTR HSEMAPHORE; typedef DWORD_PTR HEVENT; Modified: trunk/reactos/include/psdk/axextend.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/axextend.idl?…
============================================================================== --- trunk/reactos/include/psdk/axextend.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/axextend.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -958,7 +958,8 @@ [ object, uuid(31efac30-515c-11d0-a9aa-00aa0061be93), - pointer_default(unique) + pointer_default(unique), + local ] interface IKsPropertySet : IUnknown { @@ -982,3 +983,30 @@ [out] DWORD *pTypeSupport); } cpp_quote("#endif /* _IKsPropertySet_ */") + +[ + object, + uuid(36b73883-c2c8-11cf-8b46-00805f6cef60), + pointer_default(unique) +] +interface ISeekingPassThru : IUnknown +{ + HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin); +} + +enum _AM_FILTER_MISC_FLAGS +{ + AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1, + AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2 +}; + +[ + local, + object, + uuid(2dd74950-a890-11d1-abe8-00a0c905f375), + pointer_default(unique) +] +interface IAMFilterMiscFlags : IUnknown +{ + ULONG GetMiscFlags(); +}; Modified: trunk/reactos/include/psdk/dimm.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/dimm.idl?rev=…
============================================================================== --- trunk/reactos/include/psdk/dimm.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/dimm.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -185,7 +185,8 @@ [ object, uuid(09b5eab0-f997-11d1-93d4-0060b067b86e), - pointer_default(unique) + pointer_default(unique), + local ] interface IEnumInputContext : IUnknown { @@ -206,7 +207,8 @@ [ object, uuid(08c0e040-62d1-11d1-9326-0060b067b86e), - pointer_default(unique) + pointer_default(unique), + local ] interface IActiveIMMApp : IUnknown { Modified: trunk/reactos/include/psdk/indexsrv.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/indexsrv.idl?…
============================================================================== --- trunk/reactos/include/psdk/indexsrv.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/indexsrv.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -16,7 +16,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ -import "unknwn.idl"; +import "objidl.idl"; +/* FIXME: import "filter.idl"; */ /* * widl doesn't like the declaration of PFNFILLTEXTBUFFER, so work around it... @@ -49,7 +50,6 @@ * IWordSink interface */ [ - unique, uuid(cc907054-c058-101a-b554-08002b33b0e6), object, local @@ -76,7 +76,6 @@ * IPhraseSink interface */ [ - unique, uuid(cc906ff0-c058-101a-b554-08002b33b0e6), object, local @@ -98,7 +97,6 @@ * IWordBreaker interface */ [ - unique, uuid(d53552c8-77e3-101a-b552-08002b33b0e6), object, local Modified: trunk/reactos/include/psdk/mshtmdid.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mshtmdid.h?re…
============================================================================== --- trunk/reactos/include/psdk/mshtmdid.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/mshtmdid.h [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -1063,6 +1063,71 @@ #define DISPID_HTMLELEMENTEVENTS_ONFOCUSIN DISPID_EVMETH_ONFOCUSIN #define DISPID_HTMLELEMENTEVENTS_ONFOCUSOUT DISPID_EVMETH_ONFOCUSOUT +/* HTMLElementEvents2 */ + +#define DISPID_HTMLELEMENTEVENTS2_ONHELP DISPID_EVMETH_ONHELP +#define DISPID_HTMLELEMENTEVENTS2_ONCLICK DISPID_EVMETH_ONCLICK +#define DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK DISPID_EVMETH_ONDBLCLICK +#define DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS DISPID_EVMETH_ONKEYPRESS +#define DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN DISPID_EVMETH_ONKEYDOWN +#define DISPID_HTMLELEMENTEVENTS2_ONKEYUP DISPID_EVMETH_ONKEYUP +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT DISPID_EVMETH_ONMOUSEOUT +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER DISPID_EVMETH_ONMOUSEOVER +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE DISPID_EVMETH_ONMOUSEMOVE +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN DISPID_EVMETH_ONMOUSEDOWN +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP DISPID_EVMETH_ONMOUSEUP +#define DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART DISPID_EVMETH_ONSELECTSTART +#define DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE DISPID_EVMETH_ONFILTER +#define DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART DISPID_EVMETH_ONDRAGSTART +#define DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE DISPID_EVMETH_ONBEFOREUPDATE +#define DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE DISPID_EVMETH_ONAFTERUPDATE +#define DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE DISPID_EVMETH_ONERRORUPDATE +#define DISPID_HTMLELEMENTEVENTS2_ONROWEXIT DISPID_EVMETH_ONROWEXIT +#define DISPID_HTMLELEMENTEVENTS2_ONROWENTER DISPID_EVMETH_ONROWENTER +#define DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED DISPID_EVMETH_ONDATASETCHANGED +#define DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE DISPID_EVMETH_ONDATAAVAILABLE +#define DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE DISPID_EVMETH_ONDATASETCOMPLETE +#define DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE DISPID_EVMETH_ONLOSECAPTURE +#define DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE DISPID_EVMETH_ONPROPERTYCHANGE +#define DISPID_HTMLELEMENTEVENTS2_ONSCROLL DISPID_EVMETH_ONSCROLL +#define DISPID_HTMLELEMENTEVENTS2_ONFOCUS DISPID_EVMETH_ONFOCUS +#define DISPID_HTMLELEMENTEVENTS2_ONBLUR DISPID_EVMETH_ONBLUR +#define DISPID_HTMLELEMENTEVENTS2_ONRESIZE DISPID_EVMETH_ONRESIZE +#define DISPID_HTMLELEMENTEVENTS2_ONDRAG DISPID_EVMETH_ONDRAG +#define DISPID_HTMLELEMENTEVENTS2_ONDRAGEND DISPID_EVMETH_ONDRAGEND +#define DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER DISPID_EVMETH_ONDRAGENTER +#define DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER DISPID_EVMETH_ONDRAGOVER +#define DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE DISPID_EVMETH_ONDRAGLEAVE +#define DISPID_HTMLELEMENTEVENTS2_ONDROP DISPID_EVMETH_ONDROP +#define DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT DISPID_EVMETH_ONBEFORECUT +#define DISPID_HTMLELEMENTEVENTS2_ONCUT DISPID_EVMETH_ONCUT +#define DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY DISPID_EVMETH_ONBEFORECOPY +#define DISPID_HTMLELEMENTEVENTS2_ONCOPY DISPID_EVMETH_ONCOPY +#define DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE DISPID_EVMETH_ONBEFOREPASTE +#define DISPID_HTMLELEMENTEVENTS2_ONPASTE DISPID_EVMETH_ONPASTE +#define DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU DISPID_EVMETH_ONCONTEXTMENU +#define DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE DISPID_EVMETH_ONROWSDELETE +#define DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED DISPID_EVMETH_ONROWSINSERTED +#define DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE DISPID_EVMETH_ONCELLCHANGE +#define DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE DISPID_EVMETH_ONREADYSTATECHANGE +#define DISPID_HTMLELEMENTEVENTS2_ONLAYOUTCOMPLETE DISPID_EVMETH_ONLAYOUTCOMPLETE +#define DISPID_HTMLELEMENTEVENTS2_ONPAGE DISPID_EVMETH_ONPAGE +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEENTER DISPID_EVMETH_ONMOUSEENTER +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSELEAVE DISPID_EVMETH_ONMOUSELEAVE +#define DISPID_HTMLELEMENTEVENTS2_ONACTIVATE DISPID_EVMETH_ONACTIVATE +#define DISPID_HTMLELEMENTEVENTS2_ONDEACTIVATE DISPID_EVMETH_ONDEACTIVATE +#define DISPID_HTMLELEMENTEVENTS2_ONBEFOREDEACTIVATE DISPID_EVMETH_ONBEFOREDEACTIVATE +#define DISPID_HTMLELEMENTEVENTS2_ONBEFOREACTIVATE DISPID_EVMETH_ONBEFOREACTIVATE +#define DISPID_HTMLELEMENTEVENTS2_ONFOCUSIN DISPID_EVMETH_ONFOCUSIN +#define DISPID_HTMLELEMENTEVENTS2_ONFOCUSOUT DISPID_EVMETH_ONFOCUSOUT +#define DISPID_HTMLELEMENTEVENTS2_ONMOVE DISPID_EVMETH_ONMOVE +#define DISPID_HTMLELEMENTEVENTS2_ONCONTROLSELECT DISPID_EVMETH_ONCONTROLSELECT +#define DISPID_HTMLELEMENTEVENTS2_ONMOVESTART DISPID_EVMETH_ONMOVESTART +#define DISPID_HTMLELEMENTEVENTS2_ONMOVEEND DISPID_EVMETH_ONMOVEEND +#define DISPID_HTMLELEMENTEVENTS2_ONRESIZESTART DISPID_EVMETH_ONRESIZESTART +#define DISPID_HTMLELEMENTEVENTS2_ONRESIZEEND DISPID_EVMETH_ONRESIZEEND +#define DISPID_HTMLELEMENTEVENTS2_ONMOUSEWHEEL DISPID_EVMETH_ONMOUSEWHEEL + /* IHTMLElement */ #define DISPID_IHTMLELEMENT_SETATTRIBUTE (DISPID_HTMLOBJECT+1) #define DISPID_IHTMLELEMENT_GETATTRIBUTE (DISPID_HTMLOBJECT+2) @@ -2211,4 +2276,19 @@ #define DISPID_IHTMLFRAMEBASE2_READYSTATE DISPID_A_READYSTATE #define DISPID_IHTMLFRAMEBASE2_ALLOWTRANSPARENCY DISPID_A_ALLOWTRANSPARENCY +/* IHTMLControlElement */ +#define DISPID_IHTMLCONTROLELEMENT_TABINDEX STDPROPID_XOBJ_TABINDEX +#define DISPID_IHTMLCONTROLELEMENT_FOCUS (DISPID_SITE+0) +#define DISPID_IHTMLCONTROLELEMENT_ACCESSKEY (DISPID_SITE+5) +#define DISPID_IHTMLCONTROLELEMENT_ONBLUR DISPID_EVPROP_ONBLUR +#define DISPID_IHTMLCONTROLELEMENT_ONFOCUS DISPID_EVPROP_ONFOCUS +#define DISPID_IHTMLCONTROLELEMENT_ONRESIZE DISPID_EVPROP_ONRESIZE +#define DISPID_IHTMLCONTROLELEMENT_BLUR (DISPID_SITE+2) +#define DISPID_IHTMLCONTROLELEMENT_ADDFILTER (DISPID_SITE+17) +#define DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER (DISPID_SITE+18) +#define DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT (DISPID_SITE+19) +#define DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH (DISPID_SITE+20) +#define DISPID_IHTMLCONTROLELEMENT_CLIENTTOP (DISPID_SITE+21) +#define DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT (DISPID_SITE+22) + #endif /* __MSHTMDID_H__ */ Modified: trunk/reactos/include/psdk/mshtml.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/mshtml.idl?re…
============================================================================== --- trunk/reactos/include/psdk/mshtml.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/mshtml.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -3357,6 +3357,202 @@ [retval, out] IHTMLElementCollection **pelColl); } + +/***************************************************************************** + * IHTMLElement3 interface + */ +[ + odl, + oleautomation, + dual, + uuid(3050f673-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLElement3 : IDispatch +{ + [id(DISPID_IHTMLELEMENT3_MERGEATTRIBUTES)] HRESULT mergeAttributes([in] + IHTMLElement* mergeThis,[optional, in] VARIANT* pvarFlags); + + [propget, id(DISPID_IHTMLELEMENT3_ISMULTILINE)] + HRESULT isMultiLine([retval, out] VARIANT_BOOL * p); + + [propget, id(DISPID_IHTMLELEMENT3_CANHAVEHTML)] + HRESULT canHaveHTML([retval, out] VARIANT_BOOL * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable] + HRESULT onlayoutcomplete([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable] + HRESULT onlayoutcomplete([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable] + HRESULT onpage([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable] + HRESULT onpage([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable] + HRESULT inflateBlock([in] VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable] + HRESULT inflateBlock([retval, out] VARIANT_BOOL * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable] + HRESULT onbeforedeactivate([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable] + HRESULT onbeforedeactivate([retval, out] VARIANT * p); + + [id(DISPID_IHTMLELEMENT3_SETACTIVE)] HRESULT setActive(); + + [propput, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable] + HRESULT contentEditable([in] BSTR v); + + [propget, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable] + HRESULT contentEditable([retval, out] BSTR * p); + + [propget, id(DISPID_IHTMLELEMENT3_ISCONTENTEDITABLE)] + HRESULT isContentEditable([retval, out] VARIANT_BOOL * p); + + [propput, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable] + HRESULT hideFocus([in] VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable] + HRESULT hideFocus([retval, out] VARIANT_BOOL * p); + + [propput, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable] + HRESULT disabled([in] VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable] + HRESULT disabled([retval, out] VARIANT_BOOL * p); + + [propget, id(DISPID_IHTMLELEMENT3_ISDISABLED)] + HRESULT isDisabled([retval, out] VARIANT_BOOL * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable] + HRESULT onmove([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable] + HRESULT onmove([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable] + HRESULT oncontrolselect([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable] + HRESULT oncontrolselect([retval, out] VARIANT * p); + + [id(DISPID_IHTMLELEMENT3_FIREEVENT)] + HRESULT fireEvent( + [in] BSTR bstrEventName, + [optional, in] VARIANT* pvarEventObject, + [retval, out] VARIANT_BOOL* pfCancelled); + + [propput, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable] + HRESULT onresizestart([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable] + HRESULT onresizestart([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable] + HRESULT onresizeend([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable] + HRESULT onresizeend([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable] + HRESULT onmovestart([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable] + HRESULT onmovestart([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable] + HRESULT onmoveend([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable] + HRESULT onmoveend([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable] + HRESULT onmouseenter([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable] + HRESULT onmouseenter([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable] + HRESULT onmouseleave([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable] + HRESULT onmouseleave([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable] + HRESULT onactivate([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable] + HRESULT onactivate([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable] + HRESULT ondeactivate([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable] + HRESULT ondeactivate([retval, out] VARIANT * p); + + [id(DISPID_IHTMLELEMENT3_DRAGDROP)] HRESULT dragDrop([retval, out] + VARIANT_BOOL* pfRet); + + [propget, id(DISPID_IHTMLELEMENT3_GLYPHMODE), hidden, restricted, nonbrowsable] + HRESULT glyphMode([retval, out] LONG * p); +}; +/***************************************************************************** + * IHTMLElement4 interface + */ +[ + odl, + oleautomation, + dual, + uuid(3050f80f-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLElement4 : IDispatch +{ + [propput, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable] + HRESULT onmousewheel([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable] + HRESULT onmousewheel([retval, out] VARIANT * p); + + [id(DISPID_IHTMLELEMENT4_NORMALIZE)] + HRESULT normalize(); + + [id(DISPID_IHTMLELEMENT4_GETATTRIBUTENODE)] + HRESULT getAttributeNode([in] BSTR bstrname, + [retval, out] IHTMLDOMAttribute** ppAttribute); + + [id(DISPID_IHTMLELEMENT4_SETATTRIBUTENODE)] + HRESULT setAttributeNode( + [in] IHTMLDOMAttribute* pattr, + [retval, out] IHTMLDOMAttribute** ppretAttribute); + + [id(DISPID_IHTMLELEMENT4_REMOVEATTRIBUTENODE)] + HRESULT removeAttributeNode( + [in] IHTMLDOMAttribute* pattr, + [retval, out] IHTMLDOMAttribute** ppretAttribute); + + [propput, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable] + HRESULT onbeforeactivate([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable] + HRESULT onbeforeactivate([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable] + HRESULT onfocusin([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable] + HRESULT onfocusin([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable] + HRESULT onfocusout([in] VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable] + HRESULT onfocusout([retval, out] VARIANT * p); +}; + /***************************************************************************** * IHTMLGenericElement interface */ @@ -5816,7 +6012,91 @@ [propget, id(DISPID_IHTMLIMGELEMENT2_LONGDESC), displaybind, bindable] BSTR longDesc(); -} +}; + +/***************************************************************************** + * IHTMLUniqueName interface + */ +[ + odl, + oleautomation, + dual, + uuid(3050f4d0-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLUniqueName : IDispatch +{ + [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] + HRESULT uniqueNumber([retval, out] long * p); + + [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] + HRESULT uniqueID([retval, out] BSTR * p); +}; + +/***************************************************************************** + * IHTMLControlElement interface + */ +[ + odl, + oleautomation, + dual, + uuid(3050f4e9-98b5-11cf-bb82-00aa00bdce0b) +] +interface IHTMLControlElement : IDispatch +{ + [propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] + HRESULT tabIndex([in] short v); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] + HRESULT tabIndex([retval, out] short * p); + + [id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] + HRESULT focus(); + + [propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] + HRESULT accessKey([in] BSTR v); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] + HRESULT accessKey([retval, out] BSTR * p); + + [propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] + HRESULT onblur([in] VARIANT v); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] + HRESULT onblur([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] + HRESULT onfocus([in] VARIANT v); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] + HRESULT onfocus([retval, out] VARIANT * p); + + [propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] + HRESULT onresize([in] VARIANT v); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] + HRESULT onresize([retval, out] VARIANT * p); + + [id(DISPID_IHTMLCONTROLELEMENT_BLUR)] + HRESULT blur(); + + [id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] + HRESULT addFilter([in] IUnknown* pUnk); + + [id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] + HRESULT removeFilter([in] IUnknown* pUnk); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] + HRESULT clientHeight([retval, out] long * p); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] + HRESULT clientWidth([retval, out] long * p); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] + HRESULT clientTop([retval, out] long * p); + + [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] + HRESULT clientLeft([retval, out] long * p); +}; /***************************************************************************** * IHTMLBodyElement interface @@ -5958,6 +6238,962 @@ [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([retval, out] VARIANT *p); } + +[ + hidden, + uuid(3050f507-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface DispHTMLBody +{ +properties: +methods: + [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] + void setAttribute( + [in] BSTR strAttributeName, + [in] VARIANT AttValue, + [defaultvalue(1), in] LONG lFlags); + + [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] + VARIANT getAttribute( + [in] BSTR strAttributeName, + [defaultvalue(0), in] LONG lFlags); + + [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] + VARIANT_BOOL removeAttribute( + [in] BSTR strAttributeName, + [defaultvalue(1), in] LONG lFlags); + + [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] + void className(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] + BSTR className(); + + [propput, id(DISPID_IHTMLELEMENT_ID), bindable] + void id(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_ID), bindable] + BSTR id(); + + [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] + BSTR tagName(); + + [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] + IHTMLElement* parentElement(); + + [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] + IHTMLStyle* style(); + + [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] + void onhelp(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] + VARIANT onhelp(); + + [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] + void onclick(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] + VARIANT onclick(); + + [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] + void ondblclick(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] + VARIANT ondblclick(); + + [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] + void onkeydown(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] + VARIANT onkeydown(); + + [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] + void onkeyup(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] + VARIANT onkeyup(); + + [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] + void onkeypress(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] + VARIANT onkeypress(); + + [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] + void onmouseout(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] + VARIANT onmouseout(); + + [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] + void onmouseover(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] + VARIANT onmouseover(); + + [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] + void onmousemove(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] + VARIANT onmousemove(); + + [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] + void onmousedown(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] + VARIANT onmousedown(); + + [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] + void onmouseup(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] + VARIANT onmouseup(); + + [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document(); + + [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] + void title(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] + BSTR title(); + + [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] + void language(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] + BSTR language(); + + [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] + void onselectstart(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] + VARIANT onselectstart(); + + [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] + void scrollIntoView([optional, in] VARIANT varargStart); + + [id(DISPID_IHTMLELEMENT_CONTAINS)] + VARIANT_BOOL contains([in] IHTMLElement* pChild); + + [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] + long sourceIndex(); + + [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] + VARIANT recordNumber(); + + [propput, id(DISPID_IHTMLELEMENT_LANG)] + void lang(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_LANG)] + BSTR lang(); + + [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] + long offsetLeft(); + + [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] + long offsetTop(); + + [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] + long offsetWidth(); + + [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] + long offsetHeight(); + + [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] + IHTMLElement* offsetParent(); + + [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] + void innerHTML(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] + BSTR innerHTML(); + + [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] + void innerText(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] + BSTR innerText(); + + [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] + void outerHTML(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] + BSTR outerHTML(); + + [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] + void outerText(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] + BSTR outerText(); + + [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] + void insertAdjacentHTML( + [in] BSTR where, + [in] BSTR html); + + [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] + void insertAdjacentText( + [in] BSTR where, + [in] BSTR text); + + [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] + IHTMLElement* parentTextEdit(); + + [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] + VARIANT_BOOL isTextEdit(); + + [id(DISPID_IHTMLELEMENT_CLICK)] void click(); + + [propget, id(DISPID_IHTMLELEMENT_FILTERS)] + IHTMLFiltersCollection* filters(); + + [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] + void ondragstart(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] + VARIANT ondragstart(); + + [id(DISPID_IHTMLELEMENT_TOSTRING)] + BSTR toString(); + + [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] + void onbeforeupdate(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] + VARIANT onbeforeupdate(); + + [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] + void onafterupdate(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] + VARIANT onafterupdate(); + + [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] + void onerrorupdate(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] + VARIANT onerrorupdate(); + + [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] + void onrowexit(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] + VARIANT onrowexit(); + + [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] + void onrowenter(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] + VARIANT onrowenter(); + + [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] + void ondatasetchanged(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] + VARIANT ondatasetchanged(); + + [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] + void ondataavailable(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] + VARIANT ondataavailable(); + + [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] + void ondatasetcomplete(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] + VARIANT ondatasetcomplete(); + + [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] + void onfilterchange(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] + VARIANT onfilterchange(); + + [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] + IDispatch* children(); + + [propget, id(DISPID_IHTMLELEMENT_ALL)] + IDispatch* all(); + + [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] + BSTR scopeName(); + + [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] + void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture); + + [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] + void releaseCapture(); + + [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] + void onlosecapture(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] + VARIANT onlosecapture(); + + [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] + BSTR componentFromPoint([in] long x,[in] long y); + + [id(DISPID_IHTMLELEMENT2_DOSCROLL)] + void doScroll([optional, in] VARIANT component); + + [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] + void onscroll(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] + VARIANT onscroll(); + + [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] + void ondrag(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] + VARIANT ondrag(); + + [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] + void ondragend(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] + VARIANT ondragend(); + + [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] + void ondragenter(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] + VARIANT ondragenter(); + + [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] + void ondragover(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] + VARIANT ondragover(); + + [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] + void ondragleave(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] + VARIANT ondragleave(); + + [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] + void ondrop(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] + VARIANT ondrop(); + + [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] + void onbeforecut(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] + VARIANT onbeforecut(); + + [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] + void oncut(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] + VARIANT oncut(); + + [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] + void onbeforecopy(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] + VARIANT onbeforecopy(); + + [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] + void oncopy(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] + VARIANT oncopy(); + + [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] + void onbeforepaste(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] + VARIANT onbeforepaste(); + + [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] + void onpaste(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] + VARIANT onpaste(); + + [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] + IHTMLCurrentStyle* currentStyle(); + + [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] + void onpropertychange(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] + VARIANT onpropertychange(); + + [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] + IHTMLRectCollection* getClientRects(); + + [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] + IHTMLRect* getBoundingClientRect(); + + [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] + void setExpression( + [in] BSTR propname, + [in] BSTR expr, + [defaultvalue(""), in] BSTR lang); + + [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] + VARIANT getExpression([in] BSTR propname); + + [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] + VARIANT_BOOL removeExpression([in] BSTR propname); + + [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] + void tabIndex(short v); + + [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] + short tabIndex(); + + [id(DISPID_IHTMLELEMENT2_FOCUS)] + void focus(); + + [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] + void accessKey(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] + BSTR accessKey(); + + [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] + void onblur(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] + VARIANT onblur(); + + [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] + void onfocus(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] + VARIANT onfocus(); + + [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] + void onresize(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] + VARIANT onresize(); + + [id(DISPID_IHTMLELEMENT2_BLUR)] + void blur(); + + [id(DISPID_IHTMLELEMENT2_ADDFILTER)] + void addFilter([in] IUnknown* pUnk); + + [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] + void removeFilter([in] IUnknown* pUnk); + + [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] + long clientHeight(); + + [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] + long clientWidth(); + + [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] + long clientTop(); + + [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] + long clientLeft(); + + [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] + VARIANT_BOOL attachEvent( + [in] BSTR event, + [in] IDispatch* pDisp); + + [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] + void detachEvent( + [in] BSTR event, + [in] IDispatch* pDisp); + + [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState(); + + [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] + void onreadystatechange(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] + VARIANT onreadystatechange(); + + [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] + void onrowsdelete(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] + VARIANT onrowsdelete(); + + [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] + void onrowsinserted(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] + VARIANT onrowsinserted(); + + [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] + void oncellchange(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] + VARIANT oncellchange(); + + [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] + void dir(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] + BSTR dir(); + + [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] + IDispatch* createControlRange(); + + [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] + long scrollHeight(); + + [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] + long scrollWidth(); + + [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] + void scrollTop(long v); + + [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] + long scrollTop(); + + [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] + void scrollLeft(long v); + + [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] + long scrollLeft(); + + [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] + void clearAttributes(); + + [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] + void oncontextmenu(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] + VARIANT oncontextmenu(); + + [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] + IHTMLElement* insertAdjacentElement( + [in] BSTR where, + [in] IHTMLElement* insertedElement); + + [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] + IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where); + + [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] + BSTR getAdjacentText([in] BSTR where); + + [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] + BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText); + + [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] + VARIANT_BOOL canHaveChildren(); + + [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] + long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory); + + [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] + VARIANT_BOOL removeBehavior([in] long cookie); + + [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] + IHTMLStyle* runtimeStyle(); + + [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] + IDispatch* behaviorUrns(); + + [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] + void tagUrn(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] + BSTR tagUrn(); + + [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] + void onbeforeeditfocus(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] + VARIANT onbeforeeditfocus(); + + [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] + long readyStateValue(); + + [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] + IHTMLElementCollection* getElementsByTagName([in] BSTR v); + + [id(DISPID_IHTMLELEMENT3_MERGEATTRIBUTES)] + void mergeAttributes( + [in] IHTMLElement* mergeThis, + [optional, in] VARIANT* pvarFlags); + + [propget, id(DISPID_IHTMLELEMENT3_ISMULTILINE)] + VARIANT_BOOL isMultiLine(); + + [propget, id(DISPID_IHTMLELEMENT3_CANHAVEHTML)] + VARIANT_BOOL canHaveHTML(); + + [propput, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable] + void onlayoutcomplete(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONLAYOUTCOMPLETE), displaybind, bindable] + VARIANT onlayoutcomplete(); + + [propput, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable] + void onpage(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONPAGE), displaybind, bindable] + VARIANT onpage(); + + [propput, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable] + void inflateBlock(VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLELEMENT3_INFLATEBLOCK), hidden, restricted, nonbrowsable] + VARIANT_BOOL inflateBlock(); + + [propput, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable] + void onbeforedeactivate(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONBEFOREDEACTIVATE), displaybind, bindable] + VARIANT onbeforedeactivate(); + + [id(DISPID_IHTMLELEMENT3_SETACTIVE)] + void setActive(); + + [propput, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable] + void contentEditable(BSTR v); + + [propget, id(DISPID_IHTMLELEMENT3_CONTENTEDITABLE), displaybind, bindable] + BSTR contentEditable(); + + [propget, id(DISPID_IHTMLELEMENT3_ISCONTENTEDITABLE)] + VARIANT_BOOL isContentEditable(); + + [propput, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable] + void hideFocus(VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLELEMENT3_HIDEFOCUS), displaybind, bindable] + VARIANT_BOOL hideFocus(); + + [propput, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable] + void disabled(VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLELEMENT3_DISABLED), displaybind, bindable] + VARIANT_BOOL disabled(); + + [propget, id(DISPID_IHTMLELEMENT3_ISDISABLED)] + VARIANT_BOOL isDisabled(); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable] + void onmove(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOVE), displaybind, bindable] + VARIANT onmove(); + + [propput, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable] + void oncontrolselect(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONCONTROLSELECT), displaybind, bindable] + VARIANT oncontrolselect(); + + [id(DISPID_IHTMLELEMENT3_FIREEVENT)] + VARIANT_BOOL fireEvent( + [in] BSTR bstrEventName, + [optional, in] VARIANT* pvarEventObject); + + [propput, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable] + void onresizestart(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONRESIZESTART), displaybind, bindable] + VARIANT onresizestart(); + + [propput, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable] + void onresizeend(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONRESIZEEND), displaybind, bindable] + VARIANT onresizeend(); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable] + void onmovestart(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOVESTART), displaybind, bindable] + VARIANT onmovestart(); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable] + void onmoveend(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOVEEND), displaybind, bindable] + VARIANT onmoveend(); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable] + void onmouseenter(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOUSEENTER), displaybind, bindable] + VARIANT onmouseenter(); + + [propput, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable] + void onmouseleave(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONMOUSELEAVE), displaybind, bindable] + VARIANT onmouseleave(); + + [propput, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable] + void onactivate(VARIANT v); + [propget, id(DISPID_IHTMLELEMENT3_ONACTIVATE), displaybind, bindable] VARIANT onactivate(); + + [propput, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable] + void ondeactivate(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT3_ONDEACTIVATE), displaybind, bindable] + VARIANT ondeactivate(); + + [id(DISPID_IHTMLELEMENT3_DRAGDROP)] + VARIANT_BOOL dragDrop(); + + [propget, id(DISPID_IHTMLELEMENT3_GLYPHMODE), hidden, restricted, nonbrowsable] + LONG glyphMode(); + + [propput, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable] + void onmousewheel(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONMOUSEWHEEL), displaybind, bindable] + VARIANT onmousewheel(); + + [id(DISPID_IHTMLELEMENT4_NORMALIZE)] + void normalize(); + + [id(DISPID_IHTMLELEMENT4_GETATTRIBUTENODE)] + IHTMLDOMAttribute* getAttributeNode([in] BSTR bstrname); + + [id(DISPID_IHTMLELEMENT4_SETATTRIBUTENODE)] + IHTMLDOMAttribute* setAttributeNode([in] IHTMLDOMAttribute* pattr); + + [id(DISPID_IHTMLELEMENT4_REMOVEATTRIBUTENODE)] + IHTMLDOMAttribute* removeAttributeNode([in] IHTMLDOMAttribute* pattr); + + [propput, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable] + void onbeforeactivate(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONBEFOREACTIVATE), displaybind, bindable] + VARIANT onbeforeactivate(); + + [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable] + void onfocusin(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSIN), displaybind, bindable] + VARIANT onfocusin(); + + [propput, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable] + void onfocusout(VARIANT v); + + [propget, id(DISPID_IHTMLELEMENT4_ONFOCUSOUT), displaybind, bindable] + VARIANT onfocusout(); + + [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] + long uniqueNumber(); + + [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] + BSTR uniqueID(); + + [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] + long nodeType(); + + [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] + IHTMLDOMNode* parentNode(); + + [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] + VARIANT_BOOL hasChildNodes(); + + [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] + IDispatch* childNodes(); + + [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] + IDispatch* attributes(); + + [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] + IHTMLDOMNode* insertBefore( + [in] IHTMLDOMNode* newChild, + [optional, in] VARIANT refChild); + + [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] + IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild); + + [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] + IHTMLDOMNode* replaceChild( + [in] IHTMLDOMNode* newChild, + [in] IHTMLDOMNode* oldChild); + + [id(DISPID_IHTMLDOMNODE_CLONENODE)] + IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep); + + [id(DISPID_IHTMLDOMNODE_REMOVENODE)] + IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep); + + [id(DISPID_IHTMLDOMNODE_SWAPNODE)] + IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode); + + [id(DISPID_IHTMLDOMNODE_REPLACENODE)] + IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement); + + [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] + IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild); + + [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] + BSTR nodeName(); + + [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] + void nodeValue(VARIANT v); + + [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] + VARIANT nodeValue(); + + [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] + IHTMLDOMNode* firstChild(); + + [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] + IHTMLDOMNode* lastChild(); + + [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] + IHTMLDOMNode* previousSibling(); + + [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] + IHTMLDOMNode* nextSibling(); + + [propget, id(DISPID_IHTMLDOMNODE2_OWNERDOCUMENT)] + IDispatch* ownerDocument(); + + [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable] + void background(BSTR v); + + [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable] + BSTR background(); + + [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable] + void bgProperties(BSTR v); + + [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable] + BSTR bgProperties(); + + [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable] + void leftMargin(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable] + VARIANT leftMargin(); + + [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable] + void topMargin(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable] + VARIANT topMargin(); + + [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable] + void rightMargin(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable] + VARIANT rightMargin(); + + [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable] + void bottomMargin(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable] + VARIANT bottomMargin(); + + [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable] + void noWrap(VARIANT_BOOL v); + + [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable] + VARIANT_BOOL noWrap(); + + [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable] + void bgColor(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable] + VARIANT bgColor(); + + [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable] + void text(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable] + VARIANT text(); + + [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable] + void link(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable] + VARIANT link(); + + [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable] + void vLink(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable] + VARIANT vLink(); + + [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable] + void aLink(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable] + VARIANT aLink(); + + [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable] + void onload(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable] + VARIANT onload(); + + [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable] + void onunload(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable] + VARIANT onunload(); + + [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable] + void scroll(BSTR v); + + [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable] + BSTR scroll(); + + [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable] + void onselect(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable] + VARIANT onselect(); + + [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable] + void onbeforeunload(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable] + VARIANT onbeforeunload(); + + [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)] + IHTMLTxtRange* createTextRange(); + + [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable] + void onbeforeprint(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable] + VARIANT onbeforeprint(); + + [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] + void onafterprint(VARIANT v); + + [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] + VARIANT onafterprint(); +}; + +[ + uuid(3050f24a-98b5-11cf-bb82-00aa00bdce0b) +] +coclass HTMLBody +{ + [default] dispinterface DispHTMLBody; + [source, default] dispinterface HTMLTextContainerEvents; + [source] dispinterface HTMLTextContainerEvents2; + interface IHTMLElement; + interface IHTMLElement2; + interface IHTMLElement3; + interface IHTMLElement4; + interface IHTMLUniqueName; + interface IHTMLDOMNode; + interface IHTMLDOMNode2; + interface IHTMLControlElement; + interface IHTMLTextContainer; + interface IHTMLBodyElement; + interface IHTMLBodyElement2; +}; /***************************************************************************** * IHTMLAnchorElement interface @@ -11940,6 +13176,210 @@ }; /***************************************************************************** + * HTMLTextContainerEvents2 interface + */ +[ + hidden, + uuid(3050f624-98b5-11cf-bb82-00aa00bdce0b) +] +dispinterface HTMLTextContainerEvents2 +{ +properties: +methods: + [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] + VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] + VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] + VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] + VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] + void onkeydown([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] + void onkeyup([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] + void onmouseout([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] + void onmouseover([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] + void onmousemove([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] + void onmousedown([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] + void onmouseup([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] + VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] + void onfilterchange([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] + VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] + VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] + void onafterupdate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] + VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] + VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] + void onrowenter([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] + void ondatasetchanged([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] + void ondataavailable([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] + void ondatasetcomplete([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] + void onlosecapture([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] + void onpropertychange([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] + void onscroll([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] + void onfocus([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] + void onblur([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] + void onresize([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] + VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] + void ondragend([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] + VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] + VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] + void ondragleave([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] + VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] + VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] + VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] + VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] + VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] + VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] + VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] + VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] + void onrowsdelete([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] + void onrowsinserted([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] + void oncellchange([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] + void onreadystatechange([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONLAYOUTCOMPLETE)] + void onlayoutcomplete([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONPAGE)] + void onpage([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEENTER)] + void onmouseenter([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSELEAVE)] + void onmouseleave([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONACTIVATE)] + void onactivate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONDEACTIVATE)] + void ondeactivate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREDEACTIVATE)] + VARIANT_BOOL onbeforedeactivate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREACTIVATE)] + VARIANT_BOOL onbeforeactivate([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUSIN)] + void onfocusin([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUSOUT)] + void onfocusout([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOVE)] + void onmove([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONCONTROLSELECT)] + VARIANT_BOOL oncontrolselect([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOVESTART)] + VARIANT_BOOL onmovestart([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOVEEND)] + void onmoveend([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZESTART)] + VARIANT_BOOL onresizestart([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZEEND)] + void onresizeend([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEWHEEL)] + VARIANT_BOOL onmousewheel([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLTEXTCONTAINEREVENTS2_ONCHANGE)] + void onchange([in] IHTMLEventObj* pEvtObj); + + [id(DISPID_HTMLTEXTCONTAINEREVENTS2_ONSELECT)] + void onselect([in] IHTMLEventObj* pEvtObj); +}; + +/***************************************************************************** * IHTMLDocument interface */ [ Modified: trunk/reactos/include/psdk/oaidl.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/oaidl.idl?rev…
============================================================================== --- trunk/reactos/include/psdk/oaidl.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/oaidl.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -16,7 +16,9 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifndef DO_NO_IMPORTS import "objidl.idl"; +#endif interface IDispatch; interface ITypeInfo; @@ -1162,7 +1164,7 @@ [in] ITypeInfo *pTInfoBefore, [in] LPOLESTR pStrName, [out] INT *pfCancel); - + HRESULT AfterTypeChange( [in] CHANGEKIND changeKind, [in] ITypeInfo *pTInfoAfter, @@ -1472,25 +1474,25 @@ [in] REFGUID guid, [in] VARIANT *pVarVal); - HRESULT SetFuncCustData( - [in] UINT index, - [in] REFGUID guid, + HRESULT SetFuncCustData( + [in] UINT index, + [in] REFGUID guid, [in] VARIANT *pVarVal); - - HRESULT SetParamCustData( - [in] UINT indexFunc, - [in] UINT indexParam, - [in] REFGUID guid, + + HRESULT SetParamCustData( + [in] UINT indexFunc, + [in] UINT indexParam, + [in] REFGUID guid, [in] VARIANT *pVarVal); - HRESULT SetVarCustData( - [in] UINT index, - [in] REFGUID guid, + HRESULT SetVarCustData( + [in] UINT index, + [in] REFGUID guid, [in] VARIANT *pVarVal); - HRESULT SetImplTypeCustData( - [in] UINT index, - [in] REFGUID guid, + HRESULT SetImplTypeCustData( + [in] UINT index, + [in] REFGUID guid, [in] VARIANT *pVarVal); HRESULT SetHelpStringContext( Modified: trunk/reactos/include/psdk/objidl.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/objidl.idl?re…
============================================================================== --- trunk/reactos/include/psdk/objidl.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/objidl.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -16,7 +16,9 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifndef DO_NO_IMPORTS import "unknwn.idl"; +#endif interface IStream; interface IEnumString; @@ -2192,7 +2194,7 @@ enum { COMBND_RPCTIMEOUT = 1, COMBND_SERVER_LOCALITY = 2 -}; +}; enum { SERVER_LOCALITY_PROCESS_LOCAL = 0, Modified: trunk/reactos/include/psdk/shobjidl.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shobjidl.idl?…
============================================================================== --- trunk/reactos/include/psdk/shobjidl.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/shobjidl.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -22,12 +22,18 @@ import "objidl.idl"; import "oleidl.idl"; import "oaidl.idl"; +import "docobj.idl"; import "shtypes.idl"; import "servprov.idl"; import "comcat.idl"; import "propidl.idl"; -/*import "prsht.idl";*/ -/*import "msxml.idl";*/ +/* FIXME: import "prsht.idl";*/ +import "msxml.idl"; +import "wtypes.idl"; +/* FIXME: import "propsys.idl"; */ +/* FIXME: import "structuredquery.idl"; */ + +cpp_quote("/* FIXME: #include <sherrors.h> */") /***************************************************************************** @@ -388,7 +394,7 @@ /***************************************************************************** * IShellView interface */ -interface IShellBrowser; +interface IShellBrowser; /* forward declaration */ [ object, uuid(000214e3-0000-0000-c000-000000000046), @@ -412,7 +418,7 @@ typedef UINT SVSIF; - typedef enum tagSVGIO + typedef enum { SVGIO_BACKGROUND = 0x00000000, SVGIO_SELECTION = 0x00000001, @@ -422,7 +428,7 @@ SVGIO_FLAG_VIEWORDER = 0x80000000, } SVGIO; - typedef enum tagSVUIA_STATUS + typedef enum { SVUIA_DEACTIVATE = 0, SVUIA_ACTIVATE_NOFOCUS = 1, @@ -788,7 +794,8 @@ [ object, uuid(000214e8-0000-0000-c000-000000000046), - pointer_default(unique) + pointer_default(unique), + local ] interface IShellExtInit : IUnknown { @@ -941,7 +948,8 @@ [ object, uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8), - pointer_default(unique) + pointer_default(unique), + local ] interface IDockingWindowFrame : IOleWindow { @@ -1031,7 +1039,8 @@ [ object, uuid(000214e4-0000-0000-c000-000000000046), - pointer_default(unique) + pointer_default(unique), + local ] interface IContextMenu : IUnknown { @@ -1189,7 +1198,8 @@ [ object, uuid(000214f5-0000-0000-c000-000000000046), - pointer_default(unique) + pointer_default(unique), + local ] interface IShellExecuteHookA : IUnknown { @@ -1205,7 +1215,8 @@ [ object, uuid(000214fb-0000-0000-c000-000000000046), - pointer_default(unique) + pointer_default(unique), + local ] interface IShellExecuteHookW : IUnknown { @@ -1224,9 +1235,9 @@ ] interface IShellLinkDataList : IUnknown { - HRESULT AddDataBlock( + [local] HRESULT AddDataBlock( [in] void *pDataBlock); - HRESULT CopyDataBlock( + [local] HRESULT CopyDataBlock( [in] DWORD dwSig, [out] void **ppDataBlock); HRESULT RemoveDataBlock( @@ -1336,7 +1347,7 @@ HRESULT GetExtension( [out] LPSTR pszExtension, [in] int cchExtension); -} +} /***************************************************************************** @@ -1366,8 +1377,24 @@ HRESULT GetExtension( [out] LPWSTR pszExtension, [in] int cchExtension); -} - +} + +/***************************************************************************** + * IRunnableTask interface + */ +[ + object, + uuid(85788d00-6807-11d0-b810-00c04fd706ec), + pointer_default(unique) +] +interface IRunnableTask : IUnknown +{ + HRESULT Run(); + HRESULT Kill([in] BOOL fWait); + HRESULT Suspend(); + HRESULT Resume(); + ULONG IsRunning(); +} /***************************************************************************** * IShellChangeNotify interface @@ -1428,7 +1455,8 @@ [ object, uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */ - pointer_default(unique) + pointer_default(unique), + local ] interface IDefaultExtractIconInit : IUnknown { Modified: trunk/reactos/include/psdk/stdole2.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/stdole2.idl?r…
============================================================================== --- trunk/reactos/include/psdk/stdole2.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/stdole2.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -35,7 +35,7 @@ typedef unsigned long HRESULT; typedef void *VARIANT; typedef unsigned long SCODE; - + typedef struct GUID { unsigned long Data1; unsigned short Data2; @@ -251,7 +251,7 @@ [propput] HRESULT Charset([in] short pcharset); [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont); - + HRESULT Clone([out] IFont **ppfont); HRESULT IsEqual([in] IFont *pfontOther); @@ -304,7 +304,7 @@ [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle); [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal); - + [propget] HRESULT Type([out, retval] short *ptype); [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth); @@ -329,7 +329,7 @@ HRESULT SelectPicture([in] int hdcIn, [out] int *phdcOut, [out] OLE_HANDLE *phbmpOut); - + [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep); [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep); @@ -351,7 +351,7 @@ properties: [id(0x0), readonly] OLE_HANDLE Handle; [id(0x2)] OLE_HANDLE hPal; - [id(0x3), readonly] short Type; + [id(0x3), readonly] short Type; [id(0x4), readonly] OLE_XSIZE_HIMETRIC Width; [id(0x5), readonly] OLE_XSIZE_HIMETRIC Height; methods: @@ -366,7 +366,7 @@ OLE_YSIZE_HIMETRIC cySrc, void *prcWBounds); }; - + typedef [public] Picture IPictureDisp; [ Modified: trunk/reactos/include/psdk/strmif.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/strmif.idl?re…
============================================================================== --- trunk/reactos/include/psdk/strmif.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/strmif.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -25,3 +25,6 @@ #include <axextend.idl> #include <dyngraph.idl> + +/* TODO: #include <dvdif.h> */ +#include <vmrender.idl> Modified: trunk/reactos/include/psdk/tom.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/tom.idl?rev=3…
============================================================================== --- trunk/reactos/include/psdk/tom.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/tom.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -368,7 +368,7 @@ ] interface ITextPara : IDispatch { - HRESULT GetDuplicate([retval, out]ITextPara *ppPara); + HRESULT GetDuplicate([retval, out]ITextPara **ppPara); HRESULT SetDuplicate([in]ITextPara *pPara); HRESULT CanChange([out]long *pB); HRESULT IsEqual([in]ITextPara *pPara, [retval, out]long *pB); Modified: trunk/reactos/include/psdk/unknwn.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/unknwn.idl?re…
============================================================================== --- trunk/reactos/include/psdk/unknwn.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/unknwn.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -16,7 +16,9 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +#ifndef DO_NO_IMPORTS import "wtypes.idl"; +#endif /* Interfaces */ Modified: trunk/reactos/include/psdk/wtypes.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wtypes.idl?re…
============================================================================== --- trunk/reactos/include/psdk/wtypes.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/wtypes.idl [iso-8859-1] Wed Sep 10 02:40:52 2008 @@ -210,14 +210,14 @@ cpp_quote("#ifndef _SYSTEMTIME_") cpp_quote("#define _SYSTEMTIME_") typedef struct _SYSTEMTIME{ - WORD wYear; - WORD wMonth; - WORD wDayOfWeek; - WORD wDay; - WORD wHour; - WORD wMinute; - WORD wSecond; - WORD wMilliseconds; + WORD wYear; + WORD wMonth; + WORD wDayOfWeek; + WORD wDay; + WORD wHour; + WORD wMinute; + WORD wSecond; + WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; cpp_quote("#endif")
16 years, 3 months
1
0
0
0
← Newer
1
...
46
47
48
49
50
51
52
...
75
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Results per page:
10
25
50
100
200