3 * Copyright (c) 2007-2010 SlimDX Group
\r
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
\r
6 * of this software and associated documentation files (the "Software"), to deal
\r
7 * in the Software without restriction, including without limitation the rights
\r
8 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
\r
9 * copies of the Software, and to permit persons to whom the Software is
\r
10 * furnished to do so, subject to the following conditions:
\r
12 * The above copyright notice and this permission notice shall be included in
\r
13 * all copies or substantial portions of the Software.
\r
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
\r
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
\r
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
\r
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
\r
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
\r
20 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
\r
25 #include "../Utilities.h"
\r
27 #include "RegistrationProperties.h"
\r
29 using namespace System;
\r
35 XAPO_REGISTRATION_PROPERTIES RegistrationProperties::ToUnmanaged()
\r
37 XAPO_REGISTRATION_PROPERTIES props = {0};
\r
38 pin_ptr<const wchar_t> pinnedName = PtrToStringChars( FriendlyName );
\r
39 pin_ptr<const wchar_t> pinnedCopyright = PtrToStringChars( CopyrightInfo );
\r
41 props.clsid = Utilities::ConvertManagedGuid( ClassId );
\r
42 wcsncpy_s( props.FriendlyName, pinnedName, XAPO_REGISTRATION_STRING_LENGTH ); props.FriendlyName[XAPO_REGISTRATION_STRING_LENGTH - 1] = NULL;
\r
43 wcsncpy_s( props.CopyrightInfo, pinnedCopyright, XAPO_REGISTRATION_STRING_LENGTH ); props.CopyrightInfo[XAPO_REGISTRATION_STRING_LENGTH - 1] = NULL;
\r
44 props.MajorVersion = MajorVersion;
\r
45 props.MinorVersion = MinorVersion;
\r
46 props.Flags = static_cast<UINT>( Flags );
\r
47 props.MinInputBufferCount = MinInputBufferCount;
\r
48 props.MaxInputBufferCount = MaxInputBufferCount;
\r
49 props.MinOutputBufferCount = MinOutputBufferCount;
\r
50 props.MaxOutputBufferCount = MaxOutputBufferCount;
\r
55 RegistrationProperties RegistrationProperties::FromUnmanaged( const XAPO_REGISTRATION_PROPERTIES &properties )
\r
57 RegistrationProperties props;
\r
59 props.ClassId = Utilities::ConvertNativeGuid( properties.clsid );
\r
60 props.FriendlyName = gcnew String( properties.FriendlyName );
\r
61 props.CopyrightInfo = gcnew String( properties.CopyrightInfo );
\r
62 props.MajorVersion = properties.MajorVersion;
\r
63 props.MinorVersion = properties.MinorVersion;
\r
64 props.Flags = static_cast<PropertyFlags>( properties.Flags );
\r
65 props.MinInputBufferCount = properties.MinInputBufferCount;
\r
66 props.MaxInputBufferCount = properties.MaxInputBufferCount;
\r
67 props.MinOutputBufferCount = properties.MinOutputBufferCount;
\r
68 props.MaxOutputBufferCount = properties.MaxOutputBufferCount;
\r
73 bool RegistrationProperties::operator == ( RegistrationProperties left, RegistrationProperties right )
\r
75 return RegistrationProperties::Equals( left, right );
\r
78 bool RegistrationProperties::operator != ( RegistrationProperties left, RegistrationProperties right )
\r
80 return !RegistrationProperties::Equals( left, right );
\r
83 int RegistrationProperties::GetHashCode()
\r
85 return ClassId.GetHashCode() + FriendlyName->GetHashCode() + CopyrightInfo->GetHashCode() + Flags.GetHashCode() + MajorVersion.GetHashCode() + MinorVersion.GetHashCode() +
\r
86 MinInputBufferCount.GetHashCode() + MaxInputBufferCount.GetHashCode() + MinOutputBufferCount.GetHashCode() + MaxOutputBufferCount.GetHashCode();
\r
89 bool RegistrationProperties::Equals( Object^ value )
\r
91 if( value == nullptr )
\r
94 if( value->GetType() != GetType() )
\r
97 return Equals( safe_cast<RegistrationProperties>( value ) );
\r
100 bool RegistrationProperties::Equals( RegistrationProperties value )
\r
102 return ( ClassId == value.ClassId && FriendlyName == value.FriendlyName && CopyrightInfo == value.CopyrightInfo && Flags == value.Flags &&
\r
103 MajorVersion == value.MajorVersion && MinorVersion == value.MinorVersion && MinInputBufferCount == value.MinInputBufferCount &&
\r
104 MaxInputBufferCount == value.MaxInputBufferCount && MinOutputBufferCount == value.MinOutputBufferCount && MaxOutputBufferCount == value.MaxOutputBufferCount );
\r
107 bool RegistrationProperties::Equals( RegistrationProperties% value1, RegistrationProperties% value2 )
\r
109 return ( value1.ClassId == value2.ClassId && value1.FriendlyName == value2.FriendlyName && value1.CopyrightInfo == value2.CopyrightInfo && value1.Flags == value2.Flags &&
\r
110 value1.MajorVersion == value2.MajorVersion && value1.MinorVersion == value2.MinorVersion && value1.MinInputBufferCount == value2.MinInputBufferCount &&
\r
111 value1.MaxInputBufferCount == value2.MaxInputBufferCount && value1.MinOutputBufferCount == value2.MinOutputBufferCount && value1.MaxOutputBufferCount == value2.MaxOutputBufferCount );
\r