utils, screenshots, BetaName

This commit is contained in:
Garry Newman 2016-07-18 12:32:42 +01:00
parent cb926f6436
commit 8188372e3e
2 changed files with 41 additions and 14 deletions

View File

@ -22,6 +22,8 @@ internal class Internal : IDisposable
internal Valve.Steamworks.ISteamInventory inventory;
internal Valve.Steamworks.ISteamNetworking networking;
internal Valve.Steamworks.ISteamUserStats userstats;
internal Valve.Steamworks.ISteamUtils utils;
internal Valve.Steamworks.ISteamScreenshots screenshots;
internal bool Init()
{
@ -43,6 +45,9 @@ internal bool Init()
networking = client.GetISteamNetworking( _huser, _hpipe, "SteamNetworking005" );
apps = client.GetISteamApps( _huser, _hpipe, "STEAMAPPS_INTERFACE_VERSION008" );
userstats = client.GetISteamUserStats( _huser, _hpipe, "STEAMUSERSTATS_INTERFACE_VERSION011" );
screenshots = client.GetISteamScreenshots( _huser, _hpipe, "STEAMSCREENSHOTS_INTERFACE_VERSION002" );
utils = client.GetISteamUtils( _hpipe, "SteamUtils008" );
return true;
}
@ -73,7 +78,7 @@ public void Dispose()
/// <summary>
/// Current running program's AppId
/// </summary>
public uint AppId;
public uint AppId { get; private set; }
/// <summary>
/// Current user's Username
@ -83,7 +88,12 @@ public void Dispose()
/// <summary>
/// Current user's SteamId
/// </summary>
public ulong SteamId;
public ulong SteamId { get; private set; }
/// <summary>
/// Current Beta name, if ser
/// </summary>
public string BetaName { get; private set; }
public enum MessageType : int
{
@ -124,6 +134,7 @@ public Client( uint appId )
AppId = appId;
Username = native.friends.GetPersonaName();
SteamId = native.user.GetSteamID();
BetaName = native.apps.GetCurrentBetaName();
}
public void Dispose()

View File

@ -686,13 +686,13 @@ internal class NativeEntrypoints
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey" )]
internal static extern void SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey( IntPtr instancePtr, uint nAppID );
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_GetCurrentBetaName" )]
internal static extern bool SteamAPI_ISteamApps_GetCurrentBetaName( IntPtr instancePtr, string pchName, int cchNameBufferSize );
internal static extern bool SteamAPI_ISteamApps_GetCurrentBetaName( IntPtr instancePtr, IntPtr pchName, int cchNameBufferSize );
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_MarkContentCorrupt" )]
internal static extern bool SteamAPI_ISteamApps_MarkContentCorrupt( IntPtr instancePtr, bool bMissingFilesOnly );
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_GetInstalledDepots" )]
internal static extern uint SteamAPI_ISteamApps_GetInstalledDepots( IntPtr instancePtr, uint appID, ref uint pvecDepots, uint cMaxDepots );
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_GetAppInstallDir" )]
internal static extern uint SteamAPI_ISteamApps_GetAppInstallDir( IntPtr instancePtr, uint appID, string pchFolder, uint cchFolderBufferSize );
internal static extern uint SteamAPI_ISteamApps_GetAppInstallDir( IntPtr instancePtr, uint appID, IntPtr pchFolder, uint cchFolderBufferSize );
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_BIsAppInstalled" )]
internal static extern bool SteamAPI_ISteamApps_BIsAppInstalled( IntPtr instancePtr, uint appID );
[DllImportAttribute( "FacepunchSteamworksApi", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SteamAPI_ISteamApps_GetAppOwner" )]
@ -1964,10 +1964,10 @@ internal abstract class ISteamApps
internal abstract void InstallDLC( uint nAppID );
internal abstract void UninstallDLC( uint nAppID );
internal abstract void RequestAppProofOfPurchaseKey( uint nAppID );
internal abstract bool GetCurrentBetaName( string pchName, int cchNameBufferSize );
internal abstract string GetCurrentBetaName();
internal abstract bool MarkContentCorrupt( bool bMissingFilesOnly );
internal abstract uint GetInstalledDepots( uint appID, ref uint pvecDepots, uint cMaxDepots );
internal abstract uint GetAppInstallDir( uint appID, string pchFolder, uint cchFolderBufferSize );
internal abstract string GetAppInstallDir( uint appID );
internal abstract bool BIsAppInstalled( uint appID );
internal abstract ulong GetAppOwner();
internal abstract string GetLaunchQueryParam( string pchKey );
@ -2433,7 +2433,7 @@ internal override ISteamUtils GetISteamUtils( uint hSteamPipe, string pchVersion
{
CheckIfUsable();
IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamUtils(m_pSteamClient,hSteamPipe,pchVersion);
return (ISteamUtils)Marshal.PtrToStructure( result, typeof( ISteamUtils ) );
return new CSteamUtils( result );
}
internal override ISteamMatchmaking GetISteamMatchmaking( uint hSteamUser, uint hSteamPipe, string pchVersion )
{
@ -2487,7 +2487,7 @@ internal override ISteamScreenshots GetISteamScreenshots( uint hSteamuser, uint
{
CheckIfUsable();
IntPtr result = NativeEntrypoints.SteamAPI_ISteamClient_GetISteamScreenshots(m_pSteamClient,hSteamuser,hSteamPipe,pchVersion);
return (ISteamScreenshots)Marshal.PtrToStructure( result, typeof( ISteamScreenshots ) );
return new CSteamScreenshots( result );
}
internal override uint GetIPCCallCount()
{
@ -4635,11 +4635,19 @@ internal override void RequestAppProofOfPurchaseKey( uint nAppID )
CheckIfUsable();
NativeEntrypoints.SteamAPI_ISteamApps_RequestAppProofOfPurchaseKey( m_pSteamApps, nAppID );
}
internal override bool GetCurrentBetaName( string pchName, int cchNameBufferSize )
internal unsafe override string GetCurrentBetaName()
{
CheckIfUsable();
bool result = NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentBetaName(m_pSteamApps,pchName,cchNameBufferSize);
return result;
var buffer = new byte[512];
fixed ( byte* p = buffer )
{
if ( !NativeEntrypoints.SteamAPI_ISteamApps_GetCurrentBetaName( m_pSteamApps, (IntPtr)p, buffer.Length ) )
return string.Empty;
return Marshal.PtrToStringAuto( (IntPtr)p );
}
}
internal override bool MarkContentCorrupt( bool bMissingFilesOnly )
{
@ -4654,11 +4662,19 @@ internal override uint GetInstalledDepots( uint appID, ref uint pvecDepots, uint
uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetInstalledDepots(m_pSteamApps,appID,ref pvecDepots,cMaxDepots);
return result;
}
internal override uint GetAppInstallDir( uint appID, string pchFolder, uint cchFolderBufferSize )
internal override unsafe string GetAppInstallDir( uint appID )
{
CheckIfUsable();
uint result = NativeEntrypoints.SteamAPI_ISteamApps_GetAppInstallDir(m_pSteamApps,appID,pchFolder,cchFolderBufferSize);
return result;
var buffer = new byte[512];
fixed ( byte* p = buffer )
{
if ( 0 == NativeEntrypoints.SteamAPI_ISteamApps_GetAppInstallDir( m_pSteamApps, appID,( IntPtr)p, (uint) buffer.Length ) )
return string.Empty;
return Marshal.PtrToStringAuto( (IntPtr)p );
}
}
internal override bool BIsAppInstalled( uint appID )
{