Closed cxxzhang closed 1 month ago
感谢大头虾的支持,我先合并到Fea/cxxzhang/QT_support分支,然后再根据实际情况,挑链。
我接受了大多数更改,但是下面几个函数暂时没有接受:
使用 esent.def 修正JetAddColumnA@28 等函数并不像是一个合理的选择
因为我们无法假定JetAddColumnA@28 JetAddColumn@28 在Vista以及以上一定是同样的实现,这属于操作系统内部细节,最好是直接为其添加 Thunks, 考虑到最新头文件根本没暴露JetAddColumn@28,将JetAddColumn@28也进行Thunks
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetAttachDatabase2A依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetAttachDatabase2,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_ const unsigned long cpgDatabaseSizeMax,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetAttachDatabase2 = try_get_JetAttachDatabase2())
{
return _pfnJetAttachDatabase2(sesid, szFilename, cpgDatabaseSizeMax, grbit);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetAttachDatabase2A,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_ const unsigned long cpgDatabaseSizeMax,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetAttachDatabase2A = try_get_JetAttachDatabase2A())
{
return _pfnJetAttachDatabase2A(sesid, szFilename, cpgDatabaseSizeMax, grbit);
}
return YY::Thunks::JetAttachDatabase2(sesid, szFilename, cpgDatabaseSizeMax, grbit);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetBeginSessionA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetBeginSession,
_In_ JET_INSTANCE instance,
_Out_ JET_SESID* psesid,
_In_opt_ JET_PCSTR szUserName,
_In_opt_ JET_PCSTR szPassword
)
{
if (auto const _pfnJetBeginSession = try_get_JetBeginSession())
{
return _pfnJetBeginSession(instance, psesid, szUserName, szPassword);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetBeginSessionA,
_In_ JET_INSTANCE instance,
_Out_ JET_SESID* psesid,
_In_opt_ JET_PCSTR szUserName,
_In_opt_ JET_PCSTR szPassword
)
{
if (auto const _pfnJetBeginSessionA = try_get_JetBeginSessionA())
{
return _pfnJetBeginSessionA(instance, psesid, szUserName, szPassword);
}
return YY::Thunks::JetBeginSession(instance, psesid, szUserName, szPassword);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetCreateInstanceA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
8,
JET_ERR,
JET_API,
JetCreateInstance,
_Out_ JET_INSTANCE* pinstance,
_In_opt_ JET_PCSTR szInstanceName
)
{
if (auto const _pfnJetCreateInstance = try_get_JetCreateInstance())
{
return _pfnJetCreateInstance(pinstance, szInstanceName);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
//Minimum supported client Windows Vista
//Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
8,
JET_ERR,
JET_API,
JetCreateInstanceA,
_Out_ JET_INSTANCE* pinstance,
_In_opt_ JET_PCSTR szInstanceName
)
{
if (auto const _pfnJetCreateInstanceA = try_get_JetCreateInstanceA())
{
return _pfnJetCreateInstanceA(pinstance, szInstanceName);
}
return YY::Thunks::JetCreateInstance(pinstance, szInstanceName);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetCreateInstanceA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetTableColumnInfo,
_In_ JET_SESID sesid,
_In_ JET_TABLEID tableid,
_In_opt_ JET_PCSTR szColumnName,
_Out_writes_bytes_(cbMax) void* pvResult,
_In_ unsigned long cbMax,
_In_ unsigned long InfoLevel
)
{
if (auto const _pfnJetGetTableColumnInfo = try_get_JetGetTableColumnInfo())
{
return _pfnJetGetTableColumnInfo(sesid, tableid, szColumnName, pvResult, cbMax, InfoLevel);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetTableColumnInfoA,
_In_ JET_SESID sesid,
_In_ JET_TABLEID tableid,
_In_opt_ JET_PCSTR szColumnName,
_Out_writes_bytes_(cbMax) void* pvResult,
_In_ unsigned long cbMax,
_In_ unsigned long InfoLevel
)
{
if (auto const _pfnJetGetTableColumnInfoA = try_get_JetGetTableColumnInfoA())
{
return _pfnJetGetTableColumnInfoA(sesid, tableid, szColumnName, pvResult, cbMax, InfoLevel);
}
return YY::Thunks::JetGetTableColumnInfo(sesid, tableid, szColumnName, pvResult, cbMax, InfoLevel);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetOpenDatabaseA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetOpenDatabase,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_opt_ JET_PCSTR szConnect,
_Out_ JET_DBID* pdbid,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetOpenDatabase = try_get_JetOpenDatabase())
{
return _pfnJetOpenDatabase(sesid, szFilename, szConnect, pdbid, grbit);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetOpenDatabaseA,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_opt_ JET_PCSTR szConnect,
_Out_ JET_DBID* pdbid,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetOpenDatabaseA = try_get_JetOpenDatabaseA())
{
return _pfnJetOpenDatabaseA(sesid, szFilename, szConnect, pdbid, grbit);
}
return YY::Thunks::JetOpenDatabase(sesid, szFilename, szConnect, pdbid, grbit);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetOpenTableA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
28,
JET_ERR,
JET_API,
JetOpenTable,
_In_ JET_SESID sesid,
_In_ JET_DBID dbid,
_In_ JET_PCSTR szTableName,
_In_reads_bytes_opt_(cbParameters) const void* pvParameters,
_In_ unsigned long cbParameters,
_In_ JET_GRBIT grbit,
_Out_ JET_TABLEID* ptableid
)
{
if (auto const _pfnJetOpenTable = try_get_JetOpenTable())
{
return _pfnJetOpenTable(sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
28,
JET_ERR,
JET_API,
JetOpenTableA,
_In_ JET_SESID sesid,
_In_ JET_DBID dbid,
_In_ JET_PCSTR szTableName,
_In_reads_bytes_opt_(cbParameters) const void* pvParameters,
_In_ unsigned long cbParameters,
_In_ JET_GRBIT grbit,
_Out_ JET_TABLEID* ptableid
)
{
if (auto const _pfnJetOpenTableA = try_get_JetOpenTableA())
{
return _pfnJetOpenTableA(sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid);
}
return YY::Thunks::JetOpenTable(sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetSetSystemParameterA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetSetSystemParameter,
_Inout_opt_ JET_INSTANCE* pinstance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_In_opt_ JET_API_PTR lParam,
_In_opt_ JET_PCSTR szParam
)
{
if (auto const _pfnJetSetSystemParameter = try_get_JetSetSystemParameter())
{
return _pfnJetSetSystemParameter(pinstance, sesid, paramid, lParam, szParam);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
//Minimum supported client Windows Vista
//Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetSetSystemParameterA,
_Inout_opt_ JET_INSTANCE* pinstance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_In_opt_ JET_API_PTR lParam,
_In_opt_ JET_PCSTR szParam
)
{
if (auto const _pfnJetSetSystemParameterA = try_get_JetSetSystemParameterA())
{
return _pfnJetSetSystemParameterA(pinstance, sesid, paramid, lParam, szParam);
}
return YY::Thunks::JetSetSystemParameter(pinstance, sesid, paramid, lParam, szParam);
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
// 由于JetGetSystemParameterA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetSystemParameter,
_In_ JET_INSTANCE instance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_Out_opt_ JET_API_PTR* plParam,
_Out_writes_bytes_opt_(cbMax) JET_PCSTR szParam,
_In_ unsigned long cbMax
)
{
if (auto const _pfnJetGetSystemParameter = try_get_JetGetSystemParameter())
{
return _pfnJetGetSystemParameter(instance, sesid, paramid, plParam, szParam, cbMax);
}
return JET_wrnNyi;
}
#endif
#if (YY_Thunks_Support_Version < NTDDI_WIN6)
//Minimum supported client Windows Vista
//Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetSystemParameterA,
_In_ JET_INSTANCE instance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_Out_opt_ JET_API_PTR* plParam,
_Out_writes_bytes_opt_(cbMax) JET_PCSTR szParam,
_In_ unsigned long cbMax
)
{
if (auto const _pfnJetGetSystemParameterA = try_get_JetGetSystemParameterA())
{
return _pfnJetGetSystemParameterA(instance, sesid, paramid, plParam, szParam, cbMax);
}
return YY::Thunks::JetGetSystemParameter(instance, sesid, paramid, plParam, szParam, cbMax);
}
#endif
@lygstate esent.def 修正JetAddColumnA 是一个合理的选择,因为结合esent.lib以及esent.dll。我们可以确定现在JetAddColumnA@28
跟 JetAddColumn@28
等完全相同。
微软很少会突然更改公开的导出函数,暂时我认为没有必要特意为了这些事情写大量的Thunks函数。
esent.def 修正JetAddColumnA @.` 跟 @.` 等完全相同。
微软几乎不会更改已经公开的导出函数,暂时我认为没有必要特意为了这些事情写大量的Thunks函数。
发件人: Yonggang Luo @.> 发送时间: 2024年5月31日 10:44 收件人: Chuyu-Team/YY-Thunks @.> 抄送: mingkuang @.>; State change @.> 主题: Re: [Chuyu-Team/YY-Thunks] qt6.5和libcef109在适配XP时一些缺失的API (PR #85)
使用 esent.def @.*** 等函数并不像是一个合理的选择
@. @. 在Vista以及以上一定是同样的实现,这属于操作系统内部细节,最好是直接为其添加 Thunks, @.**@.也进行Thunks
// 由于JetAttachDatabase2A依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetAttachDatabase2,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_ const unsigned long cpgDatabaseSizeMax,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetAttachDatabase2 = try_get_JetAttachDatabase2())
{
return _pfnJetAttachDatabase2(sesid, szFilename, cpgDatabaseSizeMax, grbit);
}
return JET_wrnNyi;
}
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetAttachDatabase2A,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_ const unsigned long cpgDatabaseSizeMax,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetAttachDatabase2A = try_get_JetAttachDatabase2A())
{
return _pfnJetAttachDatabase2A(sesid, szFilename, cpgDatabaseSizeMax, grbit);
}
return YY::Thunks::JetAttachDatabase2(sesid, szFilename, cpgDatabaseSizeMax, grbit);
}
// 由于JetBeginSessionA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetBeginSession,
_In_ JET_INSTANCE instance,
_Out_ JET_SESID* psesid,
_In_opt_ JET_PCSTR szUserName,
_In_opt_ JET_PCSTR szPassword
)
{
if (auto const _pfnJetBeginSession = try_get_JetBeginSession())
{
return _pfnJetBeginSession(instance, psesid, szUserName, szPassword);
}
return JET_wrnNyi;
}
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
16,
JET_ERR,
JET_API,
JetBeginSessionA,
_In_ JET_INSTANCE instance,
_Out_ JET_SESID* psesid,
_In_opt_ JET_PCSTR szUserName,
_In_opt_ JET_PCSTR szPassword
)
{
if (auto const _pfnJetBeginSessionA = try_get_JetBeginSessionA())
{
return _pfnJetBeginSessionA(instance, psesid, szUserName, szPassword);
}
return YY::Thunks::JetBeginSession(instance, psesid, szUserName, szPassword);
}
// 由于JetCreateInstanceA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
8,
JET_ERR,
JET_API,
JetCreateInstance,
_Out_ JET_INSTANCE* pinstance,
_In_opt_ JET_PCSTR szInstanceName
)
{
if (auto const _pfnJetCreateInstance = try_get_JetCreateInstance())
{
return _pfnJetCreateInstance(pinstance, szInstanceName);
}
return JET_wrnNyi;
}
//Minimum supported client Windows Vista
//Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
8,
JET_ERR,
JET_API,
JetCreateInstanceA,
_Out_ JET_INSTANCE* pinstance,
_In_opt_ JET_PCSTR szInstanceName
)
{
if (auto const _pfnJetCreateInstanceA = try_get_JetCreateInstanceA())
{
return _pfnJetCreateInstanceA(pinstance, szInstanceName);
}
return YY::Thunks::JetCreateInstance(pinstance, szInstanceName);
}
// 由于JetCreateInstanceA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetTableColumnInfo,
_In_ JET_SESID sesid,
_In_ JET_TABLEID tableid,
_In_opt_ JET_PCSTR szColumnName,
_Out_writes_bytes_(cbMax) void* pvResult,
_In_ unsigned long cbMax,
_In_ unsigned long InfoLevel
)
{
if (auto const _pfnJetGetTableColumnInfo = try_get_JetGetTableColumnInfo())
{
return _pfnJetGetTableColumnInfo(sesid, tableid, szColumnName, pvResult, cbMax, InfoLevel);
}
return JET_wrnNyi;
}
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetTableColumnInfoA,
_In_ JET_SESID sesid,
_In_ JET_TABLEID tableid,
_In_opt_ JET_PCSTR szColumnName,
_Out_writes_bytes_(cbMax) void* pvResult,
_In_ unsigned long cbMax,
_In_ unsigned long InfoLevel
)
{
if (auto const _pfnJetGetTableColumnInfoA = try_get_JetGetTableColumnInfoA())
{
return _pfnJetGetTableColumnInfoA(sesid, tableid, szColumnName, pvResult, cbMax, InfoLevel);
}
return YY::Thunks::JetGetTableColumnInfo(sesid, tableid, szColumnName, pvResult, cbMax, InfoLevel);
}
// 由于JetOpenDatabaseA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetOpenDatabase,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_opt_ JET_PCSTR szConnect,
_Out_ JET_DBID* pdbid,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetOpenDatabase = try_get_JetOpenDatabase())
{
return _pfnJetOpenDatabase(sesid, szFilename, szConnect, pdbid, grbit);
}
return JET_wrnNyi;
}
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetOpenDatabaseA,
_In_ JET_SESID sesid,
_In_ JET_PCSTR szFilename,
_In_opt_ JET_PCSTR szConnect,
_Out_ JET_DBID* pdbid,
_In_ JET_GRBIT grbit
)
{
if (auto const _pfnJetOpenDatabaseA = try_get_JetOpenDatabaseA())
{
return _pfnJetOpenDatabaseA(sesid, szFilename, szConnect, pdbid, grbit);
}
return YY::Thunks::JetOpenDatabase(sesid, szFilename, szConnect, pdbid, grbit);
}
// 由于JetOpenTableA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
28,
JET_ERR,
JET_API,
JetOpenTable,
_In_ JET_SESID sesid,
_In_ JET_DBID dbid,
_In_ JET_PCSTR szTableName,
_In_reads_bytes_opt_(cbParameters) const void* pvParameters,
_In_ unsigned long cbParameters,
_In_ JET_GRBIT grbit,
_Out_ JET_TABLEID* ptableid
)
{
if (auto const _pfnJetOpenTable = try_get_JetOpenTable())
{
return _pfnJetOpenTable(sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid);
}
return JET_wrnNyi;
}
// Minimum supported client Windows Vista
// Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
28,
JET_ERR,
JET_API,
JetOpenTableA,
_In_ JET_SESID sesid,
_In_ JET_DBID dbid,
_In_ JET_PCSTR szTableName,
_In_reads_bytes_opt_(cbParameters) const void* pvParameters,
_In_ unsigned long cbParameters,
_In_ JET_GRBIT grbit,
_Out_ JET_TABLEID* ptableid
)
{
if (auto const _pfnJetOpenTableA = try_get_JetOpenTableA())
{
return _pfnJetOpenTableA(sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid);
}
return YY::Thunks::JetOpenTable(sesid, dbid, szTableName, pvParameters, cbParameters, grbit, ptableid);
}
// 由于JetSetSystemParameterA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetSetSystemParameter,
_Inout_opt_ JET_INSTANCE* pinstance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_In_opt_ JET_API_PTR lParam,
_In_opt_ JET_PCSTR szParam
)
{
if (auto const _pfnJetSetSystemParameter = try_get_JetSetSystemParameter())
{
return _pfnJetSetSystemParameter(pinstance, sesid, paramid, lParam, szParam);
}
return JET_wrnNyi;
}
//Minimum supported client Windows Vista
//Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
20,
JET_ERR,
JET_API,
JetSetSystemParameterA,
_Inout_opt_ JET_INSTANCE* pinstance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_In_opt_ JET_API_PTR lParam,
_In_opt_ JET_PCSTR szParam
)
{
if (auto const _pfnJetSetSystemParameterA = try_get_JetSetSystemParameterA())
{
return _pfnJetSetSystemParameterA(pinstance, sesid, paramid, lParam, szParam);
}
return YY::Thunks::JetSetSystemParameter(pinstance, sesid, paramid, lParam, szParam);
}
// 由于JetGetSystemParameterA依赖于此函数编译, 故使用 < NTDDI_WIN6, 而不是 < NTDDI_WIN2K
// Minimum supported server Windows Server 2000
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetSystemParameter,
_In_ JET_INSTANCE instance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_Out_opt_ JET_API_PTR* plParam,
_Out_writes_bytes_opt_(cbMax) JET_PCSTR szParam,
_In_ unsigned long cbMax
)
{
if (auto const _pfnJetGetSystemParameter = try_get_JetGetSystemParameter())
{
return _pfnJetGetSystemParameter(instance, sesid, paramid, plParam, szParam, cbMax);
}
return JET_wrnNyi;
}
//Minimum supported client Windows Vista
//Minimum supported server Windows Server 2008
__DEFINE_THUNK(
esent,
24,
JET_ERR,
JET_API,
JetGetSystemParameterA,
_In_ JET_INSTANCE instance,
_In_opt_ JET_SESID sesid,
_In_ unsigned long paramid,
_Out_opt_ JET_API_PTR* plParam,
_Out_writes_bytes_opt_(cbMax) JET_PCSTR szParam,
_In_ unsigned long cbMax
)
{
if (auto const _pfnJetGetSystemParameterA = try_get_JetGetSystemParameterA())
{
return _pfnJetGetSystemParameterA(instance, sesid, paramid, plParam, szParam, cbMax);
}
return YY::Thunks::JetGetSystemParameter(instance, sesid, paramid, plParam, szParam, cbMax);
}
― Reply to this email directly, view it on GitHubhttps://github.com/Chuyu-Team/YY-Thunks/pull/85#issuecomment-2141139539, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEX7GZOKQV3WOSQFM3RROA3ZE7P2PAVCNFSM6AAAAABIMBJSISVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBRGEZTSNJTHE. You are receiving this because you modified the open/close state.Message ID: @.***>
鸭哥,这是我这边补的一些缺失的API,全部在这里了。 你看着合不合都可以的。