Пример #1
0
        // SteamAPICall_t
        public CallbackHandle EnumerateUserPublishedFiles(uint unStartIndex /*uint32*/, Action <RemoteStorageEnumerateUserPublishedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool>*/)
        {
            SteamAPICall_t callback = 0;

            callback = platform.ISteamRemoteStorage_EnumerateUserPublishedFiles(unStartIndex);

            if (CallbackFunction == null)
            {
                return(null);
            }

            return(RemoteStorageEnumerateUserPublishedFilesResult_t.CallResult(steamworks, callback, CallbackFunction));
        }
        // SteamAPICall_t
        // using: Detect_StringArray
        public CallbackHandle EnumerateUserSharedWorkshopFiles(CSteamID steamId /*class CSteamID*/, uint unStartIndex /*uint32*/, string[] pRequiredTags /*struct SteamParamStringArray_t **/, ref SteamParamStringArray_t pExcludedTags /*struct SteamParamStringArray_t **/, Action <RemoteStorageEnumerateUserPublishedFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateUserPublishedFilesResult_t, bool>*/)
        {
            SteamAPICall_t callback = 0;
            // Create strings
            var nativeStrings = new IntPtr[pRequiredTags.Length];

            for (int i = 0; i < pRequiredTags.Length; i++)
            {
                nativeStrings[i] = Marshal.StringToHGlobalAnsi(pRequiredTags[i]);
            }
            try
            {
                // Create string array
                var size        = Marshal.SizeOf(typeof(IntPtr)) * nativeStrings.Length;
                var nativeArray = Marshal.AllocHGlobal(size);
                Marshal.Copy(nativeStrings, 0, nativeArray, nativeStrings.Length);

                // Create SteamParamStringArray_t
                var tags = new SteamParamStringArray_t();
                tags.Strings    = nativeArray;
                tags.NumStrings = pRequiredTags.Length;
                callback        = platform.ISteamRemoteStorage_EnumerateUserSharedWorkshopFiles(steamId.Value, unStartIndex, ref tags, ref pExcludedTags);
            }
            finally
            {
                foreach (var x in nativeStrings)
                {
                    Marshal.FreeHGlobal(x);
                }
            }

            if (CallbackFunction == null)
            {
                return(null);
            }
            if (callback == 0)
            {
                return(null);
            }

            return(RemoteStorageEnumerateUserPublishedFilesResult_t.CallResult(steamworks, callback, CallbackFunction));
        }
Пример #3
0
 private void OnRemoteStorageEnumerateUserPublishedFilesResult(RemoteStorageEnumerateUserPublishedFilesResult_t pCallback, bool bIOFailure)
 {
     Console.WriteLine("Found " + pCallback.m_nTotalResultCount + " published files");
     Console.WriteLine("Results: " + pCallback.m_nResultsReturned);
     if (pCallback.m_eResult == EResult.k_EResultOK)
     {
         instance.published = new Stack<PublishedFileId_t>();
         for (int i = 0; i < pCallback.m_nTotalResultCount; i++)
         {
             if (!published.Contains(pCallback.m_rgPublishedFileId[i]))
             {
                 published.Push(pCallback.m_rgPublishedFileId[i]);
             }
         }
         DownloadNextPublishedFileDetails();
     }
     else
     {
         System.Windows.Forms.MessageBox.Show(
             "An unexpected error occured (Enumerate published files)\n" + pCallback.m_eResult, "Error");
     }
 }
Пример #4
0
 void OnRemoteStorageEnumerateUserPublishedFilesResult(RemoteStorageEnumerateUserPublishedFilesResult_t pCallback, bool bIOFailure)
 {
     Debug.Log("[" + RemoteStorageEnumerateUserPublishedFilesResult_t.k_iCallback + " - RemoteStorageEnumerateUserPublishedFilesResult] - " + pCallback.m_eResult + " -- " + pCallback.m_nResultsReturned + " -- " + pCallback.m_nTotalResultCount + " -- " + pCallback.m_rgPublishedFileId);
 }