アプリ名の格納場所

アプリ名(ランチャーなどに表示される名前)は普通、

リソースタイプ:'tAIN'~

リソースID:1000
  • リソースタイプ:'tAIN'~
  • リソースID:1000

に格納されている。

アプリ名の取得方法

db = DmOpenDatabaseByTypeCreator (type, creator, mode);

アプリ名の取得方法1

db = DmOpenDatabaseByTypeCreator (type, creator, mode);
などで、データベースを開いた直後に、
MemHandle	resH;
Char		*resP;

resH = DmGet1Resource ('tAIN', 1000);
if (resH)
{
	resP = (Char *)MemHandleLock (resH);
	if (resP != NULL)
	{
		// resP(アプリ名)を文字列にコピーするなどの処理 //
		MemHandleUnlock (resH);
	}
	DmReleaseResource (resH);
}
と、こんな感じ(で良いと思う)。
DmCloseDatabase (db);
MemHandle	resH;
Char		*resP;
Char		name[dmDBNameLength];

resH = DmGet1Resource (ainRsc, ainID);
if (resH)
{
	resP = (Char *)MemHandleLock (resH);
	if (resP != NULL)
	{ // アプリ名(resP)を文字列nameにコピー //
		StrCopy (name, resP);
		MemHandleUnlock (resH);
	}
	DmReleaseResource (resH);
}
と、こんな感じ(で良いと思う)。nameにアプリ名が格納される。
DmCloseDatabase (db);
を忘れずに。

ちなみに、

DmDatabaseInfo (cardNo, dbID, &name, NULL, NULL,
 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
DmDatabaseInfo (cardNo, dbID, &name, NULL, NULL,
 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
で得られる"name"はデータベース名。

アプリ名の取得方法2

アプリケーションのリストを作成するなら、
SysCreateDataBaseList (type, creator, &dbCount, &dbIDs, lookupName);
で取得するのが簡単確実。 サンプル (アプリ名のリストを作成して、リストオブジェクト(listID)にセット)
SysDBListItemType	*dbListIDsP;
Boolean		status;
UInt16		dbCount;
MemHandle	dbIDs;
Char		**listArray
ListPtr		listP;

status = SysCreateDataBaseList (sysFileTApplication,
                       NULL, &dbCount, &dbIDs, true);
if (status == true && dbCount > 0)
{
	dbListIDsP = MemHandleLock (dbIDs);
	for (i = 0; i < dbCount; i ++)
		listArray[i] = dbListIDsP[i].name;
	listP = (ListPtr)GetObjectPtr (listID);
	LstSetListChoices (listP, listArray, dbCount);
	LstSetHeight (listP, dbCount);
	...
	MemHandleUnlock (dbIDs);
}