[9/11] apphelp: Implement SdbReadQWORDTag.
Mislav Blazevic
krofnica996 at gmail.com
Thu Aug 1 17:23:26 CDT 2013
---
dlls/apphelp/apphelp.c | 40 ++++++++++++++++++++++++++++++++++++++++
dlls/apphelp/apphelp.h | 1 +
dlls/apphelp/apphelp.spec | 2 +-
3 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/dlls/apphelp/apphelp.c b/dlls/apphelp/apphelp.c
index 34a2dee..193a5c8 100644
--- a/dlls/apphelp/apphelp.c
+++ b/dlls/apphelp/apphelp.c
@@ -767,3 +767,43 @@ DWORD WINAPI SdbReadDWORDTag(PDB db, TAGID tagid,
DWORD ret)
return ret;
}
+
+/**************************************************************************
+ * SdbReadQWORDTag [APPHELP.@]
+ *
+ * Reads QWORD value at specified tagid
+ *
+ * PARAMS
+ * db [I] Handle to the shim database
+ * tagid [I] TAGID of QWORD value
+ * ret [I] Default return value in case function fails
+ *
+ * RETURNS
+ * Success: QWORD value at specified tagid
+ * Failure: ret
+ */
+QWORD WINAPI SdbReadQWORDTag(PDB db, TAGID tagid, QWORD ret)
+{
+ TAG tag;
+
+ tag = SdbGetTagFromTagID(db, tagid);
+ if (tag == TAG_NULL)
+ {
+ TRACE("Failed to find tag for tagid %u\n", tagid);
+ return ret;
+ }
+
+ if ((tag & TAG_TYPE_MASK) != TAG_TYPE_QWORD)
+ {
+ TRACE("Tag associated with tagid %u is not a QWORD\n", tagid);
+ return ret;
+ }
+
+ if (!SdbReadData(db, &ret, tagid + 2, sizeof(QWORD)))
+ {
+ TRACE("Failed to read QWORD tag %s at tagid %u\n",
debugstr_w(SdbTagToString(tag)), tagid);
+ return ret;
+ }
+
+ return ret;
+}
diff --git a/dlls/apphelp/apphelp.h b/dlls/apphelp/apphelp.h
index 2eee762..932fdf6 100644
--- a/dlls/apphelp/apphelp.h
+++ b/dlls/apphelp/apphelp.h
@@ -18,6 +18,7 @@
typedef WORD TAG;
typedef DWORD TAGID;
+typedef UINT64 QWORD;
typedef struct _DB {
HANDLE file;
diff --git a/dlls/apphelp/apphelp.spec b/dlls/apphelp/apphelp.spec
index 8e5ee2c..efaefb7 100644
--- a/dlls/apphelp/apphelp.spec
+++ b/dlls/apphelp/apphelp.spec
@@ -118,7 +118,7 @@
@ stub SdbReadEntryInformation
@ stub SdbReadMsiTransformInfo
@ stub SdbReadPatchBits
-@ stub SdbReadQWORDTag
+@ stdcall SdbReadQWORDTag(ptr long int64)
@ stub SdbReadQWORDTagRef
@ stdcall SdbReadStringTag(ptr long wstr long)
@ stub SdbReadStringTagRef
--
1.8.3.4
More information about the wine-patches
mailing list