Author: janderwald Date: Sun Mar 28 21:06:48 2010 New Revision: 46518
URL: http://svn.reactos.org/svn/reactos?rev=46518&view=rev Log: [KSPROXY, MSDVBNP, MSVIDCTL, BDAPLGIN] - Implement DllRegisterServer, DllUnregisterServer for those components - Add msdvbnp, msvidctl to build - Add msdvbnp, bdaplgin, msvidctl to bootcd
Modified: trunk/reactos/baseaddress.rbuild trunk/reactos/boot/bootdata/packages/reactos.dff trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp trunk/reactos/dll/directx/directx.rbuild trunk/reactos/dll/directx/ksproxy/ksproxy.cpp trunk/reactos/dll/directx/msdvbnp/msdvbnp.cpp trunk/reactos/dll/directx/msdvbnp/scanningtuner.cpp trunk/reactos/dll/directx/msvidctl/msvidctl.cpp
Modified: trunk/reactos/baseaddress.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/baseaddress.rbuild?rev=4651... ============================================================================== --- trunk/reactos/baseaddress.rbuild [iso-8859-1] (original) +++ trunk/reactos/baseaddress.rbuild [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -24,6 +24,7 @@ <property name="BASEADDRESS_PSTOREC" value="0x513d0000" /> <property name="BASEADDRESS_LPK" value="0x516c0000" /> <property name="BASEADDRESS_MSGSM32ACM" value="0x56db0000" /> + <property name="BASEADDRESS_MSDVBNP" value="0x58280000" /> <property name="BASEADDRESS_MSG711ACM" value="0x584f0000" /> <property name="BASEADDRESS_IMAADP32ACM" value="0x585e0000" /> <property name="BASEADDRESS_BDAPLGIN" value="0x58600000" /> @@ -32,6 +33,7 @@ <property name="BASEADDRESS_MMSYS" value="0x588a0000" /> <property name="BASEADDRESS_JOY" value="0x589b0000" /> <property name="BASEADDRESS_QMGR" value="0x59620000" /> + <property name="BASEADDRESS_MSVIDCTL" value="0x59660000" /> <property name="BASEADDRESS_UXTHEME" value="0x5ad70000" /> <property name="BASEADDRESS_VDMDBG" value="0x5b0d0000" /> <property name="BASEADDRESS_UNTFS" value="0x5b340000" />
Modified: trunk/reactos/boot/bootdata/packages/reactos.dff URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/packages/reac... ============================================================================== --- trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -151,6 +151,7 @@ ;dll\cpl\usrmgr\usrmgr.cpl 1
dll\directx\amstream\amstream.dll 1 +dll\directx\bdaplgin\bdaplgin.ax 1 dll\directx\dinput\dinput.dll 1 dll\directx\dinput8\dinput8.dll 1 dll\directx\dmusic\dmusic.dll 1 @@ -164,6 +165,8 @@ dll\directx\ksproxy\ksproxy.ax 1 dll\directx\ksuser\ksuser.dll 1 dll\directx\msdmo\msdmo.dll 1 +dll\directx\msdvbnp\msdvbnp.ax 1 +dll\directx\msvidctl\msvidctl.dll 1 dll\directx\quartz\quartz.dll 1 dll\directx\qedit\qedit.dll 1 dll\directx\wine\d3d8\d3d8.dll 1
Modified: trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/bdaplg... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -52,7 +52,27 @@ WINAPI DllUnregisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_SET_VALUE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + RegDeleteKeyW(hClass, pStr); + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
extern "C" @@ -61,7 +81,39 @@ WINAPI DllRegisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass, hKey, hSubKey; + static LPCWSTR ModuleName = L"bdaplgin.ax"; + static LPCWSTR ThreadingModel = L"Both"; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_WRITE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + if (RegCreateKeyExW(hClass, pStr, 0, 0, 0, KEY_WRITE, NULL, &hKey, 0) == ERROR_SUCCESS) + { + if (RegCreateKeyExW(hKey, L"InprocServer32", 0, 0, 0, KEY_WRITE, NULL, &hSubKey, 0) == ERROR_SUCCESS) + { + RegSetValueExW(hSubKey, 0, 0, REG_SZ, (const BYTE*)ModuleName, (wcslen(ModuleName) + 1) * sizeof(WCHAR)); + RegSetValueExW(hSubKey, L"ThreadingModel", 0, REG_SZ, (const BYTE*)ThreadingModel, (wcslen(ThreadingModel) + 1) * sizeof(WCHAR)); + RegCloseKey(hSubKey); + } + RegCloseKey(hKey); + } + + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
KSDDKAPI
Modified: trunk/reactos/dll/directx/directx.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/directx.rbuild?... ============================================================================== --- trunk/reactos/dll/directx/directx.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/directx/directx.rbuild [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -43,6 +43,12 @@ <directory name="msdmo"> <xi:include href="msdmo/msdmo.rbuild" /> </directory> + <directory name="msdvbnp"> + <xi:include href="msdvbnp/msdvbnp.rbuild" /> + </directory> + <directory name="msvidctl"> + <xi:include href="msvidctl/msvidctl.rbuild" /> + </directory> <directory name="qedit"> <xi:include href="qedit/qedit.rbuild" /> </directory>
Modified: trunk/reactos/dll/directx/ksproxy/ksproxy.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/ksproxy... ============================================================================== --- trunk/reactos/dll/directx/ksproxy/ksproxy.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/ksproxy.cpp [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -343,7 +343,27 @@ WINAPI DllUnregisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_SET_VALUE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + RegDeleteKeyW(hClass, pStr); + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
extern "C" @@ -352,7 +372,39 @@ WINAPI DllRegisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass, hKey, hSubKey; + static LPCWSTR ModuleName = L"ksproxy.ax"; + static LPCWSTR ThreadingModel = L"Both"; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_WRITE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + if (RegCreateKeyExW(hClass, pStr, 0, 0, 0, KEY_WRITE, NULL, &hKey, 0) == ERROR_SUCCESS) + { + if (RegCreateKeyExW(hKey, L"InprocServer32", 0, 0, 0, KEY_WRITE, NULL, &hSubKey, 0) == ERROR_SUCCESS) + { + RegSetValueExW(hSubKey, 0, 0, REG_SZ, (const BYTE*)ModuleName, (wcslen(ModuleName) + 1) * sizeof(WCHAR)); + RegSetValueExW(hSubKey, L"ThreadingModel", 0, REG_SZ, (const BYTE*)ThreadingModel, (wcslen(ThreadingModel) + 1) * sizeof(WCHAR)); + RegCloseKey(hSubKey); + } + RegCloseKey(hKey); + } + + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
KSDDKAPI
Modified: trunk/reactos/dll/directx/msdvbnp/msdvbnp.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/msdvbnp/msdvbnp... ============================================================================== --- trunk/reactos/dll/directx/msdvbnp/msdvbnp.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/msdvbnp/msdvbnp.cpp [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -48,7 +48,27 @@ WINAPI DllUnregisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_SET_VALUE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + RegDeleteKeyW(hClass, pStr); + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
extern "C" @@ -57,7 +77,39 @@ WINAPI DllRegisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass, hKey, hSubKey; + static LPCWSTR ModuleName = L"msdvbnp.ax"; + static LPCWSTR ThreadingModel = L"Both"; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_WRITE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + if (RegCreateKeyExW(hClass, pStr, 0, 0, 0, KEY_WRITE, NULL, &hKey, 0) == ERROR_SUCCESS) + { + if (RegCreateKeyExW(hKey, L"InprocServer32", 0, 0, 0, KEY_WRITE, NULL, &hSubKey, 0) == ERROR_SUCCESS) + { + RegSetValueExW(hSubKey, 0, 0, REG_SZ, (const BYTE*)ModuleName, (wcslen(ModuleName) + 1) * sizeof(WCHAR)); + RegSetValueExW(hSubKey, L"ThreadingModel", 0, REG_SZ, (const BYTE*)ThreadingModel, (wcslen(ThreadingModel) + 1) * sizeof(WCHAR)); + RegCloseKey(hSubKey); + } + RegCloseKey(hKey); + } + + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
KSDDKAPI
Modified: trunk/reactos/dll/directx/msdvbnp/scanningtuner.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/msdvbnp/scannin... ============================================================================== --- trunk/reactos/dll/directx/msdvbnp/scanningtuner.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/msdvbnp/scanningtuner.cpp [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -287,7 +287,7 @@ IDVBTuneRequest * pDVBTRequest, IDVBTLocator *pDVBTLocator) { - HRESULT hr; + HRESULT hr = S_OK; ULONG Index; IBDA_Topology *pTopo; IUnknown *pNode;
Modified: trunk/reactos/dll/directx/msvidctl/msvidctl.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/msvidctl/msvidc... ============================================================================== --- trunk/reactos/dll/directx/msvidctl/msvidctl.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/msvidctl/msvidctl.cpp [iso-8859-1] Sun Mar 28 21:06:48 2010 @@ -48,7 +48,27 @@ WINAPI DllUnregisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_SET_VALUE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + RegDeleteKeyW(hClass, pStr); + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
extern "C" @@ -57,7 +77,39 @@ WINAPI DllRegisterServer(void) { - return S_OK; + ULONG Index = 0; + LPOLESTR pStr; + HRESULT hr = S_OK; + HKEY hClass, hKey, hSubKey; + static LPCWSTR ModuleName = L"msvidctl.ax"; + static LPCWSTR ThreadingModel = L"Both"; + + if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_WRITE, &hClass) != ERROR_SUCCESS) + return E_FAIL; + + do + { + hr = StringFromCLSID(*InterfaceTable[Index].riid, &pStr); + if (FAILED(hr)) + break; + + if (RegCreateKeyExW(hClass, pStr, 0, 0, 0, KEY_WRITE, NULL, &hKey, 0) == ERROR_SUCCESS) + { + if (RegCreateKeyExW(hKey, L"InprocServer32", 0, 0, 0, KEY_WRITE, NULL, &hSubKey, 0) == ERROR_SUCCESS) + { + RegSetValueExW(hSubKey, 0, 0, REG_SZ, (const BYTE*)ModuleName, (wcslen(ModuleName) + 1) * sizeof(WCHAR)); + RegSetValueExW(hSubKey, L"ThreadingModel", 0, REG_SZ, (const BYTE*)ThreadingModel, (wcslen(ThreadingModel) + 1) * sizeof(WCHAR)); + RegCloseKey(hSubKey); + } + RegCloseKey(hKey); + } + + CoTaskMemFree(pStr); + Index++; + }while(InterfaceTable[Index].lpfnCI != 0); + + RegCloseKey(hClass); + return hr; }
KSDDKAPI