[4/11] apphelp: Implement SdbGetFirstChild.
Mislav Blazevic
krofnica996 at gmail.com
Thu Aug 1 17:23:13 CDT 2013
---
dlls/apphelp/apphelp.c | 33 +++++++++++++++++++++++++++++++++
dlls/apphelp/apphelp.spec | 2 +-
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/dlls/apphelp/apphelp.c b/dlls/apphelp/apphelp.c
index e74529c..89e61e6 100644
--- a/dlls/apphelp/apphelp.c
+++ b/dlls/apphelp/apphelp.c
@@ -411,3 +411,36 @@ TAG WINAPI SdbGetTagFromTagID(PDB db, TAGID tagid)
return data;
}
+
+/**************************************************************************
+ * SdbGetFirstChild [APPHELP.@]
+ *
+ * Searches shim database for a child of specified parent tag
+ *
+ * PARAMS
+ * db [I] Handle to the shim database
+ * parent [I] TAGID of parent
+ *
+ * RETURNS
+ * Success: TAGID associated with child tag
+ * Failure: TAGID_NULL
+ */
+TAGID WINAPI SdbGetFirstChild(PDB db, TAGID parent)
+{
+ /* if we are at beginning of database */
+ if (parent == TAGID_ROOT)
+ {
+ /* header only database: no tags */
+ if (db->size <= _TAGID_ROOT)
+ return TAGID_NULL;
+ /* return *real* root tagid */
+ else return _TAGID_ROOT;
+ }
+
+ /* only list tag can have children */
+ if ((SdbGetTagFromTagID(db, parent) & TAG_TYPE_MASK) != TAG_TYPE_LIST)
+ return TAGID_NULL;
+
+ /* first child is sizeof(TAG) + sizeof(DWORD) bytes after
beginning of list */
+ return parent + 6;
+}
diff --git a/dlls/apphelp/apphelp.spec b/dlls/apphelp/apphelp.spec
index ee5e96f..f935a15 100644
--- a/dlls/apphelp/apphelp.spec
+++ b/dlls/apphelp/apphelp.spec
@@ -62,7 +62,7 @@
@ stub SdbGetFileImageType
@ stub SdbGetFileImageTypeEx
@ stub SdbGetFileInfo
-@ stub SdbGetFirstChild
+@ stdcall SdbGetFirstChild(ptr long)
@ stub SdbGetIndex
@ stub SdbGetItemFromItemRef
@ stub SdbGetLayerName
--
1.8.3.4
More information about the wine-patches
mailing list