[SHCORE] Import from Wine-10.0

This commit is contained in:
Timo Kreuzer
2026-06-18 23:27:41 +00:00
parent 2013ec6ede
commit 628ce75acd
6 changed files with 2859 additions and 0 deletions
+1
View File
@@ -193,6 +193,7 @@ add_subdirectory(setupapi)
add_subdirectory(sfc)
add_subdirectory(sfc_os)
add_subdirectory(sfcfiles)
add_subdirectory(shcore)
add_subdirectory(shdoclc)
add_subdirectory(shdocvw)
add_subdirectory(shell32)
+24
View File
@@ -0,0 +1,24 @@
remove_definitions(-D_WIN32_WINNT=0x502)
add_definitions(-D_WIN32_WINNT=0x600)
spec2def(shcore.dll shcore.spec ADD_IMPORTLIB)
add_definitions(-DCONST_VTABLE)
list(APPEND SOURCE
main.c
${CMAKE_CURRENT_BINARY_DIR}/shcore.def
${CMAKE_CURRENT_BINARY_DIR}/shcore_stubs.c
)
add_library(shcore MODULE ${SOURCE})
set_module_type(shcore win32dll ENTRYPOINT 0)
if(MSVC)
target_compile_options(shcore PRIVATE /wd4267) # warning C4267: '=': conversion from 'size_t' to 'ULONG', possible loss of data
endif()
target_link_libraries(shcore crtheap wine wine_dll_canunload)
add_importlibs(shcore combase advapi32 advapi32_vista kernel32 ntdll)
add_dependencies(shcore psdk)
add_cd_file(TARGET shcore DESTINATION reactos/system32 FOR all)
set_wine_module(shcore)
File diff suppressed because it is too large Load Diff
+198
View File
@@ -0,0 +1,198 @@
1 stub -noname SHCreateReadOnlySharedMemoryStream
@ stdcall CommandLineToArgvW(wstr ptr)
@ stub CreateRandomAccessStreamOnFile
@ stdcall CreateRandomAccessStreamOverStream(ptr long ptr ptr)
@ stub CreateStreamOverRandomAccessStream
@ stdcall -private DllCanUnloadNow()
@ stub DllGetActivationFactory
@ stub -private DllGetClassObject
@ stdcall GetCurrentProcessExplicitAppUserModelID(ptr)
@ stdcall -stub GetDpiForMonitor(long long ptr ptr)
@ stub GetDpiForShellUIComponent
@ stdcall GetFeatureEnabledState(long long)
# @ stub GetFeatureVariant
@ stdcall -stub GetProcessDpiAwareness(long ptr)
@ stdcall GetProcessReference(ptr)
@ stdcall GetScaleFactorForDevice(long)
@ stdcall GetScaleFactorForMonitor(long ptr)
@ stub IStream_Copy
@ stdcall IStream_Read(ptr ptr long) _IStream_Read
@ stub IStream_ReadStr
@ stdcall IStream_Reset(ptr)
@ stdcall IStream_Size(ptr ptr)
@ stdcall IStream_Write(ptr ptr long) _IStream_Write
@ stub IStream_WriteStr
@ stdcall IUnknown_AtomicRelease(ptr)
@ stdcall IUnknown_GetSite(ptr ptr ptr)
@ stdcall IUnknown_QueryService(ptr ptr ptr ptr)
@ stdcall IUnknown_Set(ptr ptr)
@ stdcall IUnknown_SetSite(ptr ptr)
@ stdcall IsOS(long)
# @ stub IsProcessInIsolatedContainer
# @ stub IsProcessInWDAGContainer
# @ stub RecordFeatureError
# @ stub RecordFeatureUsage
@ stdcall RegisterScaleChangeEvent(ptr ptr)
@ stdcall RegisterScaleChangeNotifications(long ptr long ptr)
@ stub RevokeScaleChangeNotifications
@ stdcall SHAnsiToAnsi(str ptr long)
@ stdcall SHAnsiToUnicode(str ptr long)
@ stdcall SHCopyKeyA(long str long long)
@ stdcall SHCopyKeyW(long wstr long long)
@ stdcall SHCreateMemStream(ptr long)
@ stdcall SHCreateStreamOnFileA(str long ptr)
@ stdcall SHCreateStreamOnFileEx(wstr long long long ptr ptr)
@ stdcall SHCreateStreamOnFileW(wstr long ptr)
@ stdcall SHCreateThread(ptr ptr long ptr)
@ stdcall SHCreateThreadRef(ptr ptr)
@ stub SHCreateThreadWithHandle
@ stdcall SHDeleteEmptyKeyA(long str)
@ stdcall SHDeleteEmptyKeyW(long wstr)
@ stdcall SHDeleteKeyA(long str)
@ stdcall SHDeleteKeyW(long wstr)
@ stdcall SHDeleteValueA(long str str)
@ stdcall SHDeleteValueW(long wstr wstr)
@ stdcall SHEnumKeyExA(long long str ptr)
@ stdcall SHEnumKeyExW(long long wstr ptr)
@ stdcall SHEnumValueA(long long str ptr ptr ptr ptr)
@ stdcall SHEnumValueW(long long wstr ptr ptr ptr ptr)
@ stdcall SHGetThreadRef(ptr)
@ stdcall SHGetValueA(long str str ptr ptr ptr)
@ stdcall SHGetValueW(long wstr wstr ptr ptr ptr)
@ stdcall SHOpenRegStream2A(long str str long)
@ stdcall SHOpenRegStream2W(long wstr wstr long)
@ stdcall SHOpenRegStreamA(long str str long)
@ stdcall SHOpenRegStreamW(long wstr wstr long)
@ stdcall SHQueryInfoKeyA(long ptr ptr ptr ptr)
@ stdcall SHQueryInfoKeyW(long ptr ptr ptr ptr)
@ stdcall SHQueryValueExA(long str ptr ptr ptr ptr)
@ stdcall SHQueryValueExW(long wstr ptr ptr ptr ptr)
@ stdcall SHRegDuplicateHKey(long)
@ stdcall SHRegGetIntW(ptr wstr long)
@ stdcall SHRegGetPathA(long str str ptr long)
@ stdcall SHRegGetPathW(long wstr wstr ptr long)
@ stdcall SHRegGetValueA(long str str long ptr ptr ptr) advapi32.RegGetValueA
@ stdcall SHRegGetValueW(long wstr wstr long ptr ptr ptr) advapi32.RegGetValueW
@ stdcall SHRegSetPathA(long str str str long)
@ stdcall SHRegSetPathW(long wstr wstr wstr long)
@ stdcall SHReleaseThreadRef()
@ stdcall SHSetThreadRef(ptr)
@ stdcall SHSetValueA(long str str long ptr long)
@ stdcall SHSetValueW(long wstr wstr long ptr long)
@ stdcall SHStrDupA(str ptr)
@ stdcall SHStrDupW(wstr ptr)
# @ stub SHTaskPoolAllowThreadReuse
# @ stub SHTaskPoolDoNotWaitForMoreTasks
# @ stub SHTaskPoolGetCurrentThreadLifetime
# @ stub SHTaskPoolGetUniqueContext
# @ stub SHTaskPoolQueueTask
# @ stub SHTaskPoolSetThreadReuseAllowed
@ stdcall SHUnicodeToAnsi(wstr ptr ptr)
@ stdcall SHUnicodeToUnicode(wstr ptr long)
@ stdcall SetCurrentProcessExplicitAppUserModelID(wstr)
@ stdcall -stub SetProcessDpiAwareness(long)
@ stdcall SetProcessReference(ptr)
@ stdcall SubscribeFeatureStateChangeNotification(ptr ptr ptr)
@ stub UnregisterScaleChangeEvent
# @ stub UnsubscribeFeatureStateChangeNotification
100 stub -noname SHManagedCreateStreamOnFile
101 stub -noname SHManagedCreateFile
102 stub -noname SHIsEmptyStream
103 stub -noname MapWin32ErrorToSTG
104 stub -noname ModeToCreateFileFlags
105 stub -noname CreateTempStreamName
106 stub -noname StreamCopyTo
107 stub -noname IStream_ReadStrLong
108 stub -noname IStream_WriteStrLong
109 stub -noname SHCreateStreamOnModuleResourceW
110 stub -noname SHCreateStreamOnDllResourceW
111 stub -noname CreateWritableSharedMemoryStream
115 stub -noname CreateRandomAccessStreamOnFileWithOptions
116 stub -noname RandomAccessStreamCopyAsync
117 stub -noname CreateRandomAccessStreamOnPlaceholderFile
120 stub -noname SHRegGetCLSIDKey
121 stub -noname SHRegSetValue
122 stub SHRegGetValueFromHKCUHKLM
123 stub -noname SHRegGetBoolValueFromHKCUHKLM
124 stub -noname SHGetValueGoodBootA
125 stub -noname SHGetValueGoodBootW
126 stub -noname SHLoadRegUIStringW
127 stub -noname QuerySourceCreateFromKeyEx
130 stub -noname SHGlobalCounterGetValue
131 stub -noname SHGlobalCounterIncrement
132 stub -noname SHGlobalCounterDecrement
133 stub -noname SHGlobalCounterSetValue
140 stub -noname IUnknown_ProfferService
141 stub -noname IUnknown_RemoveBackReferences
142 stub -noname IUnknown_GetClassID
143 stub -noname StrRetToStrW
144 stub -noname StrRetToBSTR
145 stub -noname StrRetToBufW
150 stub -noname SHAnsiToUnicodeCP
151 stub -noname SHUnicodeToAnsiCP
152 stub -noname SHUnicodeToAnsiCPAlloc
153 stub -noname SHAnsiToUnicodeCPAlloc
160 stub -noname SHWaitForSendMessageThread
161 stub -noname SHWaitForThreadWithWakeMask
162 stub -noname SHQueueUserWorkItem
170 stub -noname PathIsNetworkPathW
171 stub -noname PathIsNetworkPathA
172 stub -noname PathBuildRootW
173 stub -noname PathBuildRootA
174 stub -noname DriveType
175 stub -noname IsNetDrive
181 stub -noname SHMapHandle
182 stub -noname SHAllocShared
183 stub -noname SHLockSharedEx
184 stub -noname SHLockShared
185 stub -noname SHGetSizeShared
186 stub -noname SHUnlockShared
187 stub -noname SHFreeShared
188 stub -noname SHCreateWorkerWindowW
189 stub -noname SHCreateOplockProvider
190 stub -noname SHWindowsPolicy
191 stub -noname SHWindowsPolicyGetValue
192 stub -noname IsAppCompatModeEnabled
193 stub -noname SHGetObjectCompatFlags
200 stub -noname GUIDFromStringW
220 stub -noname GetPhysicalDpiForDevice
222 stub -noname ScaleRelativePixelsForDevice
223 stub -noname PhysicalRectFromScaledRect
224 stub -noname ScaleAndMapRelativeRectForDevice
225 stub -noname CanOverrideScaleFactor
226 stub -noname GetScalingOverride
227 stub -noname RegisterScaleChangeSink
228 stub -noname SetDesignModeScaleFactor
229 stub -noname GetProposedScaleFactorForWindow
230 stub -noname SHSetWindowSubclass
231 stub -noname SHGetWindowSubclassData
232 stub -noname SHRemoveWindowSubclass
233 stub -noname SHDefSubclassProc
234 stub -noname SHRegisterClassW
240 stub -noname RegisterScaleChangeSinkForWindow
241 stub -noname ScaleAndMapRelativeRect
242 stub -noname RelativeRectFromPhysicalRectWithScale
244 stub -noname GetScaleFactorForWindow
245 stub -noname RegisterScaleChangeNotificationsForWindow
246 stub -noname RevokeScaleChangeNotificationsForWindow
247 stub -noname GetOverrideScaleFactorForWindow
248 stub -noname GetSystemScaleFactorForWindow
249 stub -noname UpdateScalingInfoCache
250 stub -noname RegisterCurrentWindowChangeListener
251 stub -noname RegisterWindowMonitorChangeListener
252 stub -noname UnregisterCurrentWindowChangeListener
253 stub -noname UnregisterWindowMonitorChangeListener
254 stub -noname AddCurrentWindowCandidate
255 stub -noname GetCurrentWindow
260 stub -noname PhysicalRectFromRelativeRectWithScales
261 stub -noname RelativeRectFromPhysicalRectWithScales
270 stub -noname SHCreateMemoryStreamOnSharedBuffer
280 stub -noname _CreateDirectoryHelper
281 stub -noname Win32CreateDirectory
282 stub -noname SuspendSHNotify
283 stub -noname ResumeSHNotify
284 stub -noname IsNotifySuspended
290 stub -noname SHCreateDirectoryExW
291 stub -noname SHCreateDirectoryExA
292 stub -noname SHCreateDirectory
+49
View File
@@ -0,0 +1,49 @@
/*
* Copyright (C) 2021 Alex Henrie
*
* 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 _FEATURESTAGINGAPI_H_
#define _FEATURESTAGINGAPI_H_
#ifdef __cplusplus
extern "C" {
#endif
DECLARE_HANDLE(FEATURE_STATE_CHANGE_SUBSCRIPTION);
typedef void WINAPI FEATURE_STATE_CHANGE_CALLBACK(void*);
typedef enum FEATURE_CHANGE_TIME
{
FEATURE_CHANGE_TIME_READ,
FEATURE_CHANGE_TIME_MODULE_RELOAD,
FEATURE_CHANGE_TIME_SESSION,
FEATURE_CHANGE_TIME_REBOOT
} FEATURE_CHANGE_TIME;
typedef enum FEATURE_ENABLED_STATE
{
FEATURE_ENABLED_STATE_DEFAULT,
FEATURE_ENABLED_STATE_DISABLED,
FEATURE_ENABLED_STATE_ENABLED
} FEATURE_ENABLED_STATE;
#ifdef __cplusplus
}
#endif
#endif
+32
View File
@@ -0,0 +1,32 @@
/*
* Copyright 2023 Louis Lenders
*
* 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 SHCORE_H
#define SHCORE_H
#include <objidl.h>
typedef enum BSOS_OPTIONS
{
BSOS_DEFAULT,
BSOS_PREFERDESTINATIONSTREAM
} BSOS_OPTIONS;
HRESULT WINAPI CreateRandomAccessStreamOverStream(IStream *stream, BSOS_OPTIONS options, REFIID riid, void **ppv);
#endif