コード例 #1
0
        public static void ValidateDocument(ISymUnmanagedDocument document, string url, string algorithmId, byte[] checksum)
        {
            ValidateDocumentUrl(document, url);

            int actualCount, actualCount2;

            if (checksum != null)
            {
                Assert.Equal(HResult.S_OK, document.GetChecksum(0, out actualCount, null));
                byte[] actualChecksum = new byte[actualCount];
                Assert.Equal(HResult.S_OK, document.GetChecksum(actualCount, out actualCount2, actualChecksum));
                Assert.Equal(actualCount, actualCount2);
                AssertEx.Equal(checksum, actualChecksum);
            }
            else
            {
                Assert.Equal(HResult.S_FALSE, document.GetChecksum(0, out actualCount, null));
                Assert.Equal(0, actualCount);
            }

            var guid = Guid.NewGuid();

            Assert.Equal(HResult.S_OK, document.GetChecksumAlgorithmId(ref guid));
            Assert.Equal(algorithmId != null ? new Guid(algorithmId) : default(Guid), guid);

            guid = Guid.NewGuid();
            Assert.Equal(HResult.S_OK, document.GetLanguageVendor(ref guid));
            Assert.Equal(new Guid("994b45c4-e6e9-11d2-903f-00c04fa302a1"), guid);

            guid = Guid.NewGuid();
            Assert.Equal(HResult.S_OK, document.GetDocumentType(ref guid));
            Assert.Equal(new Guid("5a869d0b-6611-11d3-bd2a-0000f80849bd"), guid);
        }
コード例 #2
0
ファイル: SymTestHelpers.cs プロジェクト: antonfirsov/roslyn
        public static void ValidateDocument(ISymUnmanagedDocument document, string url, string algorithmId, byte[] checksum)
        {
            ValidateDocumentUrl(document, url);

            int actualCount, actualCount2;

            if (checksum != null)
            {
                Assert.Equal(HResult.S_OK, document.GetChecksum(0, out actualCount, null));
                byte[] actualChecksum = new byte[actualCount];
                Assert.Equal(HResult.S_OK, document.GetChecksum(actualCount, out actualCount2, actualChecksum));
                Assert.Equal(actualCount, actualCount2);
                AssertEx.Equal(checksum, actualChecksum);
            }
            else
            {
                Assert.Equal(HResult.S_FALSE, document.GetChecksum(0, out actualCount, null));
                Assert.Equal(0, actualCount);
            }

            var guid = Guid.NewGuid();

            Assert.Equal(HResult.S_OK, document.GetChecksumAlgorithmId(ref guid));
            Assert.Equal(algorithmId != null ? new Guid(algorithmId) : default(Guid), guid);

            guid = Guid.NewGuid();
            Assert.Equal(HResult.S_OK, document.GetLanguageVendor(ref guid));
            Assert.Equal(new Guid("994b45c4-e6e9-11d2-903f-00c04fa302a1"), guid);

            guid = Guid.NewGuid();
            Assert.Equal(HResult.S_OK, document.GetDocumentType(ref guid));
            Assert.Equal(new Guid("5a869d0b-6611-11d3-bd2a-0000f80849bd"), guid);
        }
コード例 #3
0
        public static Guid GetLanguageVendor(this ISymUnmanagedDocument document)
        {
            Guid result = default(Guid);
            int  hr     = document.GetLanguageVendor(ref result);

            ThrowExceptionForHR(hr);
            return(result);
        }
コード例 #4
0
        public static Guid GetLanguageVendor(this ISymUnmanagedDocument document)
        {
            if (document == null)
            {
                throw new ArgumentNullException(nameof(document));
            }

            Guid result = default(Guid);

            ThrowExceptionForHR(document.GetLanguageVendor(ref result));
            return(result);
        }
コード例 #5
0
ファイル: SymbolWriter.cs プロジェクト: maresja1/SDenc
        /// <summary>
        /// Defines copy of <c>document</c> in new symbols file.
        /// </summary>
        /// <param name="document">Document to be copied</param>
        /// <returns>Instance of <c>ISymUnmanagedDocumentWriter</c>, which is used to write <c>document</c> in symbole file.</returns>
        public ISymUnmanagedDocumentWriter DefineDocument(ISymUnmanagedDocument document)
        {
            if (State != WriterState.Building)
            {
                throw new TranslatingException("ISym* interfaces were not initializde. (EnC)");
            }
            string url        = document.GetURL();
            Guid   type       = document.GetDocumentType();
            Guid   language   = document.GetLanguage();
            Guid   langVendor = document.GetLanguageVendor();
            IntPtr pUrl       = Marshal.StringToCoTaskMemUni(url);

            try{
                return(mWriter.__DefineDocument(pUrl, ref language, ref langVendor, ref type));
            } finally {
                Marshal.FreeCoTaskMem(pUrl);
            }
        }
コード例 #6
0
ファイル: SymbolWriter.cs プロジェクト: maresja1/SDenc
 /// <summary>
 /// Defines copy of <c>document</c> in new symbols file.
 /// </summary>
 /// <param name="document">Document to be copied</param>
 /// <returns>Instance of <c>ISymUnmanagedDocumentWriter</c>, which is used to write <c>document</c> in symbole file.</returns>
 public ISymUnmanagedDocumentWriter DefineDocument(ISymUnmanagedDocument document)
 {
     if(State != WriterState.Building){
         throw new TranslatingException("ISym* interfaces were not initializde. (EnC)");
     }
     string url = document.GetURL();
     Guid type = document.GetDocumentType();
     Guid language = document.GetLanguage();
     Guid langVendor = document.GetLanguageVendor();
     IntPtr pUrl = Marshal.StringToCoTaskMemUni(url);
     try{
         return mWriter.__DefineDocument(pUrl,ref language,ref langVendor,ref type);
     } finally {
         Marshal.FreeCoTaskMem(pUrl);
     }
 }