LCIDConversionAttribute 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메서드의 관리되지 않는 시그니처에 LCID(로캘 식별자) 매개 변수가 필요함을 나타냅니다.
public ref class LCIDConversionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
public sealed class LCIDConversionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class LCIDConversionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
type LCIDConversionAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Method, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type LCIDConversionAttribute = class
inherit Attribute
Public NotInheritable Class LCIDConversionAttribute
Inherits Attribute
- 상속
- 특성
예제
다음 예제에서는 에 제공된 다양한 값을 기반으로 하는 다양한 서명 변환을 보여 줍니다 LCIDConversionAttribute
.
using namespace System;
using namespace System::Runtime::InteropServices;
using namespace System::Reflection;
#define LCID_INSTALLED 1
#define LCID_SUPPORTED 2
ref class LCIDAttrSample
{
public:
// Position of the LCID argument
[DllImport("KERNEL32.DLL",EntryPoint="IsValidLocale",SetLastError=true,CharSet=CharSet::Auto)]
[LCIDConversionAttribute(0)]
static bool IsValidLocale( int dwFlags ); // options
void CheckCurrentLCID()
{
MethodInfo^ mthIfo = this->GetType()->GetMethod( "IsValidLocale" );
Attribute^ attr = Attribute::GetCustomAttribute( mthIfo, LCIDConversionAttribute::typeid );
if ( attr != nullptr )
{
LCIDConversionAttribute^ lcidAttr = dynamic_cast<LCIDConversionAttribute^>(attr);
Console::WriteLine( "Position of the LCID argument in the unmanaged signature: {0}", lcidAttr->Value );
}
bool res = IsValidLocale( LCID_INSTALLED );
Console::WriteLine( "Result LCID_INSTALLED {0}", res );
res = IsValidLocale( LCID_SUPPORTED );
Console::WriteLine( "Result LCID_SUPPORTED {0}", res );
}
};
int main()
{
LCIDAttrSample^ smpl = gcnew LCIDAttrSample;
smpl->CheckCurrentLCID();
}
using System;
using System.Runtime.InteropServices;
using System.Reflection;
class LCIDAttrSample
{
private const int LCID_INSTALLED = 1;
private const int LCID_SUPPORTED = 2;
[DllImport("KERNEL32.DLL", EntryPoint="IsValidLocale", SetLastError = true, CharSet = CharSet.Auto)]
[LCIDConversionAttribute(0)] // Position of the LCID argument
public static extern bool IsValidLocale(
uint dwFlags // options
);
public void CheckCurrentLCID()
{
MethodInfo mthIfo = this.GetType().GetMethod("IsValidLocale");
Attribute attr = Attribute.GetCustomAttribute(mthIfo,typeof(LCIDConversionAttribute));
if( attr != null)
{
LCIDConversionAttribute lcidAttr = (LCIDConversionAttribute)attr;
Console.WriteLine("Position of the LCID argument in the unmanaged signature: " + lcidAttr.Value.ToString());
}
bool res = IsValidLocale(LCID_INSTALLED);
Console.WriteLine("Result LCID_INSTALLED " + res.ToString());
res = IsValidLocale(LCID_SUPPORTED);
Console.WriteLine("Result LCID_SUPPORTED " + res.ToString());
}
static void Main(string[] args)
{
LCIDAttrSample smpl = new LCIDAttrSample();
smpl.CheckCurrentLCID();
}
}
Imports System.Runtime.InteropServices
Imports System.Reflection
Class LCIDAttrSampler
Const LCID_INSTALLED As Integer = 1
Const LCID_SUPPORTED As Integer = 2
<DllImport("KERNEL32.DLL", EntryPoint:="IsValidLocale", _
SetLastError:=True, CharSet:=CharSet.Unicode, _
CallingConvention:=CallingConvention.StdCall), _
LCIDConversionAttribute(0)> _
Public Shared Function IsValidLocale(ByVal dwFlags As Integer) As Boolean
End Function
Public Sub CheckCurrentLCID()
Dim mthIfo As MethodInfo = Me.GetType().GetMethod("IsValidLocale")
Dim attr As Attribute = Attribute.GetCustomAttribute(mthIfo, GetType(LCIDConversionAttribute))
If Not(attr Is Nothing) Then
Dim lcidAttr As LCIDConversionAttribute = CType(attr, LCIDConversionAttribute)
Console.WriteLine("Position of the LCID argument in the unmanaged signature: " + lcidAttr.Value.ToString())
End If
Dim res As Boolean = IsValidLocale(LCID_INSTALLED)
Console.WriteLine("Result LCID_INSTALLED " + res.ToString())
res = IsValidLocale(LCID_SUPPORTED)
Console.WriteLine("Result LCID_SUPPORTED " + res.ToString())
End Sub
Public Shared Sub Main()
Dim smpl As LCIDAttrSampler = New LCIDAttrSampler()
smpl.CheckCurrentLCID()
End Sub
End Class
설명
메서드에 이 특성을 적용할 수 있습니다.
이 특성은 마샬러가 지정된 메서드 인수 다음에 LCID가 전달될 것으로 예상해야 했음을 나타냅니다. 관리 코드에서 비관리 코드로 호출이 이루어지면 마샬러는 LCID 인수를 자동으로 제공합니다.
생성자
LCIDConversionAttribute(Int32) |
관리되지 않는 시그니처의 해당 LCID 위치로 |
속성
TypeId |
파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다. (다음에서 상속됨 Attribute) |
Value |
관리되지 않는 시그니처에서 LCID 인수의 위치를 가져옵니다. |
메서드
Equals(Object) |
이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
GetHashCode() |
이 인스턴스의 해시 코드를 반환합니다. (다음에서 상속됨 Attribute) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IsDefaultAttribute() |
파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다. (다음에서 상속됨 Attribute) |
Match(Object) |
파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Attribute) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다. (다음에서 상속됨 Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1). (다음에서 상속됨 Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다. (다음에서 상속됨 Attribute) |
적용 대상
.NET