Files
2026-02-21 16:45:37 +08:00

47 lines
1.6 KiB
C#

using System;
using System.Runtime.InteropServices;
namespace Steamworks
{
public static class SteamAppList
{
public static uint GetNumInstalledApps()
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamAppList_GetNumInstalledApps(CSteamAPIContext.GetSteamAppList());
}
public static uint GetInstalledApps(AppId_t[] pvecAppID, uint unMaxAppIDs)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamAppList_GetInstalledApps(CSteamAPIContext.GetSteamAppList(), pvecAppID, unMaxAppIDs);
}
public static int GetAppName(AppId_t nAppID, out string pchName, int cchNameMax)
{
InteropHelp.TestIfAvailableClient();
IntPtr intPtr = Marshal.AllocHGlobal(cchNameMax);
int num = NativeMethods.ISteamAppList_GetAppName(CSteamAPIContext.GetSteamAppList(), nAppID, intPtr, cchNameMax);
pchName = ((num == -1) ? null : InteropHelp.PtrToStringUTF8(intPtr));
Marshal.FreeHGlobal(intPtr);
return num;
}
public static int GetAppInstallDir(AppId_t nAppID, out string pchDirectory, int cchNameMax)
{
InteropHelp.TestIfAvailableClient();
IntPtr intPtr = Marshal.AllocHGlobal(cchNameMax);
int num = NativeMethods.ISteamAppList_GetAppInstallDir(CSteamAPIContext.GetSteamAppList(), nAppID, intPtr, cchNameMax);
pchDirectory = ((num == -1) ? null : InteropHelp.PtrToStringUTF8(intPtr));
Marshal.FreeHGlobal(intPtr);
return num;
}
public static int GetAppBuildId(AppId_t nAppID)
{
InteropHelp.TestIfAvailableClient();
return NativeMethods.ISteamAppList_GetAppBuildId(CSteamAPIContext.GetSteamAppList(), nAppID);
}
}
}