| 1 | // Licensed to the .NET Foundation under one or more agreements. |
| 2 | // The .NET Foundation licenses this file to you under the MIT license. |
| 3 | // See the LICENSE file in the project root for more information. |
| 4 | |
| 5 | //***************************************************************************** |
| 6 | // This code supports formatting a method and it's signature in a friendly |
| 7 | // and consistent format. |
| 8 | // |
| 9 | //***************************************************************************** |
| 10 | |
| 11 | #ifndef __PrettyPrintSig_h__ |
| 12 | #define __PrettyPrintSig_h__ |
| 13 | |
| 14 | #include <cor.h> |
| 15 | |
| 16 | class CQuickBytes; |
| 17 | |
| 18 | // |
| 19 | // The return value is either NULL or a null-terminated ASCII string |
| 20 | // |
| 21 | |
| 22 | //--------------------------------------------------------------------------------------- |
| 23 | // |
| 24 | // Prints a signature in a human readable format. |
| 25 | // No one should use this function. This exists strictly for backwards compatibility with external formats. |
| 26 | // |
| 27 | // Arguments: |
| 28 | // sigPtr - Method/field sig to convert |
| 29 | // sigLen - length of sig |
| 30 | // name - the name of the method for this sig. Can be L"" |
| 31 | // scratch - scratch buffer to use |
| 32 | // pIMDI - Import api to use. |
| 33 | // |
| 34 | // Return Value: |
| 35 | // The formatted string. |
| 36 | // |
| 37 | // Assumptions: |
| 38 | // None |
| 39 | // |
| 40 | // Notes: |
| 41 | // Dev's SHOULD NOT create new callers to this function. Use |
| 42 | // code:PrettyPrintSig in formatype.h instead. This function exists for |
| 43 | // legacy support in the CLR. There are places that depend on the format |
| 44 | // of this string. |
| 45 | // |
| 46 | |
| 47 | LPCWSTR PrettyPrintSigLegacy( |
| 48 | PCCOR_SIGNATURE sigPtr, // Method/field sig to convert |
| 49 | unsigned sigLen, // length of sig |
| 50 | LPCWSTR name, // the name of the method for this sig. Can be L"" |
| 51 | CQuickBytes *scratch, // scratch buffer to use |
| 52 | IMetaDataImport *pIMDI); // Import api to use. |
| 53 | |
| 54 | struct IMDInternalImport; |
| 55 | |
| 56 | //--------------------------------------------------------------------------------------- |
| 57 | // |
| 58 | // Prints a signature in a human readable format. |
| 59 | // No one should use this function. This exists strictly for backwards compatibility with external formats. |
| 60 | // |
| 61 | // Arguments: |
| 62 | // sigPtr - Method/field sig to convert |
| 63 | // sigLen - length of sig |
| 64 | // name - the name of the method for this sig. Can be L"" |
| 65 | // out - The buffer in which to write the pretty printed string. |
| 66 | // pIMDI - Import api to use. |
| 67 | // |
| 68 | // Return Value: |
| 69 | // An HRESULT and the formatted string is in out as a unicode string. |
| 70 | // |
| 71 | // Assumptions: |
| 72 | // None |
| 73 | // |
| 74 | // Notes: |
| 75 | // Dev's SHOULD NOT create new callers to this function. Use |
| 76 | // code:PrettyPrintSig in formattype.h instead. This function exists for |
| 77 | // legacy support in the CLR. There are places that depend on the format |
| 78 | // of this string. |
| 79 | // |
| 80 | HRESULT PrettyPrintSigInternalLegacy( // S_OK or error. |
| 81 | PCCOR_SIGNATURE sigPtr, // sig to convert, |
| 82 | unsigned sigLen, // length of sig |
| 83 | LPCSTR name, // can be "", the name of the method for this sig |
| 84 | CQuickBytes *out, // where to put the pretty printed string |
| 85 | IMDInternalImport *pIMDI); // Import api to use. |
| 86 | |
| 87 | // |
| 88 | // On success, the null-terminated ASCII string is in "out.Ptr()" |
| 89 | // |
| 90 | |
| 91 | #endif // __PrettyPrintSig_h__ |
| 92 | |