mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 07:26:47 +00:00
[FRAMEDYN]
Partplement framedyn.dll So far, only CHString class is implemented in it Regarding CHString class implementation: It has been implemented matching Windows behavior and bugs It might not be really nice at some points but this ensures compatibility with applications relying on it. As a side note: this might explain why this API was abandonned after w2k3... Regarding the DLL itself: Its implementation into ReactOS allows systeminfo.exe application from w2k3 to load and start initialization into ReactOS. It stops working later on with some IDispatch error. The DLL cannot be used to build any application against framedyn.dll with our "default" BE (read with G++). Only MSVC mangled name are exported so far (as on Windows ;-)) thanks to aliasing. This is why there are two spec files. This makes G++ unable to link with it though. This is the reason why there are no framedyn_apitests so far. Furthermore, the DLL only have exports for x86 and none for x64 for the moment. Any help is welcome for having exports for x64 target and to be able to have aliasing for G++ (from its mangled names to MSVC ones). svn path=/trunk/; revision=59940
This commit is contained in:
parent
dd724bbd3c
commit
f570a3d1ff
|
@ -39,6 +39,7 @@ add_subdirectory(dnsapi)
|
|||
add_subdirectory(dwmapi)
|
||||
add_subdirectory(faultrep)
|
||||
add_subdirectory(fmifs)
|
||||
add_subdirectory(framedyn)
|
||||
add_subdirectory(fusion)
|
||||
add_subdirectory(gdiplus)
|
||||
add_subdirectory(getuname)
|
||||
|
|
31
reactos/dll/win32/framedyn/CMakeLists.txt
Normal file
31
reactos/dll/win32/framedyn/CMakeLists.txt
Normal file
|
@ -0,0 +1,31 @@
|
|||
set_cpp(WITH_RUNTIME)
|
||||
|
||||
if(NOT MSVC)
|
||||
spec2def(framedyn.dll framedyn_gcc.spec ADD_IMPORTLIB)
|
||||
else()
|
||||
spec2def(framedyn.dll framedyn_msvc.spec ADD_IMPORTLIB)
|
||||
endif()
|
||||
|
||||
list(APPEND SOURCE
|
||||
main.c
|
||||
chstring.cpp
|
||||
${CMAKE_CURRENT_BINARY_DIR}/framedyn.def)
|
||||
|
||||
add_library(framedyn SHARED
|
||||
${SOURCE})
|
||||
|
||||
set_module_type(framedyn win32dll UNICODE)
|
||||
|
||||
add_importlibs(framedyn
|
||||
msvcrt
|
||||
kernel32
|
||||
oleaut32
|
||||
ntdll)
|
||||
|
||||
if(NOT MSVC)
|
||||
# FIXME: http://www.cmake.org/Bug/view.php?id=12998
|
||||
#add_target_compile_flags(framedyn "-fexceptions -Wno-deprecated-declarations")
|
||||
set_source_files_properties(${SOURCE} PROPERTIES COMPILE_FLAGS "-fexceptions -Wno-deprecated-declarations")
|
||||
endif()
|
||||
|
||||
add_cd_file(TARGET framedyn DESTINATION reactos/system32/wbem FOR all)
|
1406
reactos/dll/win32/framedyn/chstring.cpp
Normal file
1406
reactos/dll/win32/framedyn/chstring.cpp
Normal file
File diff suppressed because it is too large
Load diff
76
reactos/dll/win32/framedyn/framedyn_gcc.spec
Normal file
76
reactos/dll/win32/framedyn/framedyn_gcc.spec
Normal file
|
@ -0,0 +1,76 @@
|
|||
@ thiscall ?AllocBeforeWrite@CHString@@IAEXH@Z(long) _ZN8CHString16AllocBeforeWriteEi
|
||||
@ thiscall ?AllocBuffer@CHString@@IAEXH@Zlong(long) _ZN8CHString11AllocBufferEi
|
||||
@ thiscall ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long) _ZNK8CHString9AllocCopyERS_iii
|
||||
@ thiscall ?AllocSysString@CHString@@QBEPAGXZ() _ZNK8CHString14AllocSysStringEv
|
||||
@ thiscall ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr) _ZN8CHString10AssignCopyEiPKw
|
||||
@ thiscall ??0CHString@@QAE@ABV0@@Z(ptr) _ZN8CHStringC2ERKS_
|
||||
@ thiscall ??0CHString@@QAE@PBD@Z(str) _ZN8CHStringC2EPKc
|
||||
@ thiscall ??0CHString@@QAE@PBE@Z(str) _ZN8CHStringC2EPKh
|
||||
@ thiscall ??0CHString@@QAE@PBG@Z(wstr) _ZN8CHStringC2EPKw
|
||||
@ thiscall ??0CHString@@QAE@PBGH@Z(wstr long) _ZN8CHStringC2EPKwi
|
||||
@ thiscall ??0CHString@@QAE@GH@Z(long long) _ZN8CHStringC2Ewi
|
||||
@ thiscall ??0CHString@@QAE@XZ() _ZN8CHStringC2Ev
|
||||
@ thiscall ?Collate@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CollateEPKw
|
||||
@ thiscall ?Compare@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString7CompareEPKw
|
||||
@ thiscall ?CompareNoCase@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString13CompareNoCaseEPKw
|
||||
@ thiscall ?ConcatCopy@CHString@@IAEXHPBGH0@Z(long wstr long wstr) _ZN8CHString10ConcatCopyEiPKwiS1_
|
||||
@ thiscall ?ConcatInPlace@CHString@@IAEXHPBG@Z(long wstr) _ZN8CHString13ConcatInPlaceEiPKw
|
||||
@ thiscall ?CopyBeforeWrite@CHString@@IAEXXZ() _ZN8CHString15CopyBeforeWriteEv
|
||||
@ thiscall ?Empty@CHString@@QAEXXZ() _ZN8CHString5EmptyEv
|
||||
@ thiscall ?Find@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString4FindEPKw
|
||||
@ thiscall ?Find@CHString@@QBEHG@Z(long) _ZNK8CHString4FindEw
|
||||
@ thiscall ?FindOneOf@CHString@@QBEHPBG@Z(wstr) _ZNK8CHString9FindOneOfEPKw
|
||||
@ thiscall ?Format@CHString@@QAAXIZZ(long long long) _ZN8CHString6FormatEjz
|
||||
@ thiscall ?Format@CHString@@QAAXPBGZZ(long wstr long) _ZN8CHString6FormatEPKwz
|
||||
@ thiscall ?FormatMessageW@CHString@@QAAXIZZ(long long long) _ZN8CHString14FormatMessageWEjz
|
||||
@ thiscall ?FormatMessageW@CHString@@QAAXPBGZZ(long ptr long) _ZN8CHString14FormatMessageWEPKwz
|
||||
@ thiscall ?FormatV@CHString@@QAEXPBGPAD@Z(wstr long) _ZN8CHString7FormatVEPKwPc
|
||||
@ thiscall ?FreeExtra@CHString@@QAEXXZ() _ZN8CHString9FreeExtraEv
|
||||
@ thiscall ?GetAllocLength@CHString@@QBEHXZ() _ZNK8CHString14GetAllocLengthEv
|
||||
@ thiscall ?GetAt@CHString@@QBEGH@Z(long) _ZNK8CHString5GetAtEi
|
||||
@ thiscall ?GetBuffer@CHString@@QAEPAGH@Z(long) _ZN8CHString9GetBufferEi
|
||||
@ thiscall ?GetBufferSetLength@CHString@@QAEPAGH@Z(long) _ZN8CHString18GetBufferSetLengthEi
|
||||
@ thiscall ?GetData@CHString@@IBEPAUCHStringData@@XZ() _ZNK8CHString7GetDataEv
|
||||
@ thiscall ?GetLength@CHString@@QBEHXZ() _ZNK8CHString9GetLengthEv
|
||||
@ thiscall ?Init@CHString@@IAEXXZ() _ZN8CHString4InitEv
|
||||
@ thiscall ?IsEmpty@CHString@@QBEHXZ() _ZNK8CHString7IsEmptyEv
|
||||
@ thiscall ?Left@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString4LeftEi
|
||||
@ thiscall ?LoadStringW@CHString@@QAEHI@Z(long) _ZN8CHString11LoadStringWEj
|
||||
@ thiscall ?LoadStringW@CHString@@IAEHIPAGI@Z(long wstr long) _ZN8CHString11LoadStringWEjPwj
|
||||
@ thiscall ?LockBuffer@CHString@@QAEPAGXZ() _ZN8CHString10LockBufferEv
|
||||
@ thiscall ?MakeLower@CHString@@QAEXXZ() _ZN8CHString9MakeLowerEv
|
||||
@ thiscall ?MakeReverse@CHString@@QAEXXZ() _ZN8CHString11MakeReverseEv
|
||||
@ thiscall ?MakeUpper@CHString@@QAEXXZ() _ZN8CHString9MakeUpperEv
|
||||
@ thiscall ?Mid@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString3MidEi
|
||||
@ thiscall ?Mid@CHString@@QBE?AV1@HH@Z(long long) _ZNK8CHString3MidEii
|
||||
@ thiscall ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr) _ZN8CHString7ReleaseEP12CHStringData
|
||||
@ thiscall ?Release@CHString@@IAEXXZ() _ZN8CHString7ReleaseEv
|
||||
@ thiscall ?ReleaseBuffer@CHString@@QAEXH@Z(long) _ZN8CHString13ReleaseBufferEi
|
||||
@ thiscall ?ReverseFind@CHString@@QBEHG@Z(long) _ZNK8CHString11ReverseFindEw
|
||||
@ thiscall ?Right@CHString@@QBE?AV1@H@Z(long) _ZNK8CHString5RightEi
|
||||
@ stdcall ?SafeStrlen@CHString@@KGHPBG@Z(wstr) _ZN8CHString10SafeStrlenEPKw
|
||||
@ thiscall ?SetAt@CHString@@QAEXHG@Z(long long) _ZN8CHString5SetAtEiw
|
||||
@ thiscall ?SpanExcluding@CHString@@QBE?AV1@PBG@Z(long wstr) _ZNK8CHString13SpanExcludingEPKw
|
||||
@ thiscall ?SpanIncluding@CHString@@QBE?AV1@PBG@Z(long wstr) _ZNK8CHString13SpanIncludingEPKw
|
||||
@ thiscall ?TrimLeft@CHString@@QAEXXZ() _ZN8CHString8TrimLeftEv
|
||||
@ thiscall ?TrimRight@CHString@@QAEXXZ() _ZN8CHString9TrimRightEv
|
||||
@ thiscall ?UnlockBuffer@CHString@@QAEXXZ() _ZN8CHString12UnlockBufferEv
|
||||
@ thiscall ??BCHString@@QBEPBGXZ(ptr) _ZN8CHStringcvPwEv
|
||||
@ thiscall ??YCHString@@QAEABV0@ABV0@@Z(ptr) _ZN8CHStringpLERKS_
|
||||
@ thiscall ??YCHString@@QAEABV0@D@Z(long) _ZN8CHStringpLEc
|
||||
@ thiscall ??YCHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringpLEPKw
|
||||
@ thiscall ??YCHString@@QAEABV0@G@Z(long) _ZN8CHStringpLEw
|
||||
@ thiscall ??4CHString@@QAEABV0@PAV0@@Z(ptr) _ZN8CHStringaSEPS_
|
||||
@ thiscall ??4CHString@@QAEABV0@ABV0@@Z(ptr) _ZN8CHStringaSERKS_
|
||||
@ thiscall ??4CHString@@QAEABV0@PBD@Z(str) _ZN8CHStringaSEPKc
|
||||
@ thiscall ??4CHString@@QAEABV0@D@Z(long) _ZN8CHStringaSEc
|
||||
@ thiscall ??4CHString@@QAEABV0@PBE@Z(str) _ZN8CHStringaSEPKh
|
||||
@ thiscall ??4CHString@@QAEABV0@PBG@Z(wstr) _ZN8CHStringaSEPKw
|
||||
@ thiscall ??4CHString@@QAEABV0@G@Z(long) _ZN8CHStringaSEw
|
||||
@ thiscall ??ACHString@@QBEGH@Z(long) _ZNK8CHStringixEi
|
||||
@ thiscall ??1CHString@@QAE@XZ() _ZN8CHStringD2Ev
|
||||
@ stdcall ??H@YG?AVCHString@@GABV0@@Z(long ptr) _ZplwRK8CHString
|
||||
@ stdcall ??H@YG?AVCHString@@ABV0@G@Z(ptr long) _ZplRK8CHStringw
|
||||
@ stdcall ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr) _ZplRK8CHStringPKw
|
||||
@ stdcall ??H@YG?AVCHString@@PBGABV0@@Z(wstr ptr) _ZplPKwRK8CHString
|
||||
@ stdcall ??H@YG?AVCHString@@ABV0@0@Z(ptr ptr) _ZplRK8CHStringS1_
|
76
reactos/dll/win32/framedyn/framedyn_msvc.spec
Normal file
76
reactos/dll/win32/framedyn/framedyn_msvc.spec
Normal file
|
@ -0,0 +1,76 @@
|
|||
@ thiscall ?AllocBeforeWrite@CHString@@IAEXH@Z(long)
|
||||
@ thiscall ?AllocBuffer@CHString@@IAEXH@Zlong(long)
|
||||
@ thiscall ?AllocCopy@CHString@@IBEXAAV1@HHH@Z(ptr long long long)
|
||||
@ thiscall ?AllocSysString@CHString@@QBEPAGXZ()
|
||||
@ thiscall ?AssignCopy@CHString@@IAEXHPBG@Z(long wstr)
|
||||
@ thiscall ??0CHString@@QAE@ABV0@@Z(ptr)
|
||||
@ thiscall ??0CHString@@QAE@PBD@Z(str)
|
||||
@ thiscall ??0CHString@@QAE@PBE@Z(str)
|
||||
@ thiscall ??0CHString@@QAE@PBG@Z(wstr)
|
||||
@ thiscall ??0CHString@@QAE@PBGH@Z(wstr long)
|
||||
@ thiscall ??0CHString@@QAE@GH@Z(long long)
|
||||
@ thiscall ??0CHString@@QAE@XZ()
|
||||
@ thiscall ?Collate@CHString@@QBEHPBG@Z(wstr)
|
||||
@ thiscall ?Compare@CHString@@QBEHPBG@Z(wstr)
|
||||
@ thiscall ?CompareNoCase@CHString@@QBEHPBG@Z(wstr)
|
||||
@ thiscall ?ConcatCopy@CHString@@IAEXHPBGH0@Z(long wstr long wstr)
|
||||
@ thiscall ?ConcatInPlace@CHString@@IAEXHPBG@Z(long wstr)
|
||||
@ thiscall ?CopyBeforeWrite@CHString@@IAEXXZ()
|
||||
@ thiscall ?Empty@CHString@@QAEXXZ()
|
||||
@ thiscall ?Find@CHString@@QBEHPBG@Z(wstr)
|
||||
@ thiscall ?Find@CHString@@QBEHG@Z(long)
|
||||
@ thiscall ?FindOneOf@CHString@@QBEHPBG@Z(wstr)
|
||||
@ thiscall ?Format@CHString@@QAAXIZZ(long long long)
|
||||
@ thiscall ?Format@CHString@@QAAXPBGZZ(long wstr long)
|
||||
@ thiscall ?FormatMessageW@CHString@@QAAXIZZ(long long long)
|
||||
@ thiscall ?FormatMessageW@CHString@@QAAXPBGZZ(long ptr long)
|
||||
@ thiscall ?FormatV@CHString@@QAEXPBGPAD@Z(wstr long)
|
||||
@ thiscall ?FreeExtra@CHString@@QAEXXZ()
|
||||
@ thiscall ?GetAllocLength@CHString@@QBEHXZ()
|
||||
@ thiscall ?GetAt@CHString@@QBEGH@Z(long)
|
||||
@ thiscall ?GetBuffer@CHString@@QAEPAGH@Z(long)
|
||||
@ thiscall ?GetBufferSetLength@CHString@@QAEPAGH@Z(long)
|
||||
@ thiscall ?GetData@CHString@@IBEPAUCHStringData@@XZ()
|
||||
@ thiscall ?GetLength@CHString@@QBEHXZ()
|
||||
@ thiscall ?Init@CHString@@IAEXXZ()
|
||||
@ thiscall ?IsEmpty@CHString@@QBEHXZ()
|
||||
@ thiscall ?Left@CHString@@QBE?AV1@H@Z(long)
|
||||
@ thiscall ?LoadStringW@CHString@@QAEHI@Z(long)
|
||||
@ thiscall ?LoadStringW@CHString@@IAEHIPAGI@Z(long wstr long)
|
||||
@ thiscall ?LockBuffer@CHString@@QAEPAGXZ()
|
||||
@ thiscall ?MakeLower@CHString@@QAEXXZ()
|
||||
@ thiscall ?MakeReverse@CHString@@QAEXXZ()
|
||||
@ thiscall ?MakeUpper@CHString@@QAEXXZ()
|
||||
@ thiscall ?Mid@CHString@@QBE?AV1@H@Z(long)
|
||||
@ thiscall ?Mid@CHString@@QBE?AV1@HH@Z(long long)
|
||||
@ thiscall ?Release@CHString@@KGXPAUCHStringData@@@Z(ptr)
|
||||
@ thiscall ?Release@CHString@@IAEXXZ()
|
||||
@ thiscall ?ReleaseBuffer@CHString@@QAEXH@Z(long)
|
||||
@ thiscall ?ReverseFind@CHString@@QBEHG@Z(long)
|
||||
@ thiscall ?Right@CHString@@QBE?AV1@H@Z(long)
|
||||
@ stdcall ?SafeStrlen@CHString@@KGHPBG@Z(wstr)
|
||||
@ thiscall ?SetAt@CHString@@QAEXHG@Z(long long)
|
||||
@ thiscall ?SpanExcluding@CHString@@QBE?AV1@PBG@Z(long wstr)
|
||||
@ thiscall ?SpanIncluding@CHString@@QBE?AV1@PBG@Z(long wstr)
|
||||
@ thiscall ?TrimLeft@CHString@@QAEXXZ()
|
||||
@ thiscall ?TrimRight@CHString@@QAEXXZ()
|
||||
@ thiscall ?UnlockBuffer@CHString@@QAEXXZ()
|
||||
@ thiscall ??BCHString@@QBEPBGXZ(ptr)
|
||||
@ thiscall ??YCHString@@QAEABV0@ABV0@@Z(ptr)
|
||||
@ thiscall ??YCHString@@QAEABV0@D@Z(long)
|
||||
@ thiscall ??YCHString@@QAEABV0@PBG@Z(wstr)
|
||||
@ thiscall ??YCHString@@QAEABV0@G@Z(long)
|
||||
@ thiscall ??4CHString@@QAEABV0@PAV0@@Z(ptr)
|
||||
@ thiscall ??4CHString@@QAEABV0@ABV0@@Z(ptr)
|
||||
@ thiscall ??4CHString@@QAEABV0@PBD@Z(str)
|
||||
@ thiscall ??4CHString@@QAEABV0@D@Z(long)
|
||||
@ thiscall ??4CHString@@QAEABV0@PBE@Z(str)
|
||||
@ thiscall ??4CHString@@QAEABV0@PBG@Z(wstr)
|
||||
@ thiscall ??4CHString@@QAEABV0@G@Z(long)
|
||||
@ thiscall ??ACHString@@QBEGH@Z(long)
|
||||
@ thiscall ??1CHString@@QAE@XZ()
|
||||
@ stdcall ??H@YG?AVCHString@@GABV0@@Z(long ptr)
|
||||
@ stdcall ??H@YG?AVCHString@@ABV0@G@Z(ptr long)
|
||||
@ stdcall ??H@YG?AVCHString@@ABV0@PBG@Z(ptr wstr)
|
||||
@ stdcall ??H@YG?AVCHString@@PBGABV0@@Z(wstr ptr)
|
||||
@ stdcall ??H@YG?AVCHString@@ABV0@0@Z(ptr ptr)
|
27
reactos/dll/win32/framedyn/main.c
Normal file
27
reactos/dll/win32/framedyn/main.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS system libraries
|
||||
* FILE: dll/win32/framedyn/main.c
|
||||
* PURPOSE: framedyn entry point
|
||||
* PROGRAMMERS: Pierre Schweitzer (pierre@reactos.org)
|
||||
*
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
|
||||
switch (fdwReason)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hinstDLL);
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
Loading…
Reference in a new issue