Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / Security / RightsManagement / NativeRightsManagementAPIsStructures.cs / 1305600 / NativeRightsManagementAPIsStructures.cs
//------------------------------------------------------------------------------
//
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Description:
// These are the Structure declarations for interop services required to call into unmanaged
// Promethium Rights Management SDK APIs
//
// History:
// 06/13/2005: IgorBel: Initial implementation.
//
//-----------------------------------------------------------------------------
#define PRESENTATION_HOST_DLL
// for "PresentationHostDLL.dll"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Security;
namespace MS.Internal.Security.RightsManagement
{
///
/// Critical: This class server as a wrapper on top of private class UnsafeNativeMethods.
/// UnsafeNativeMethods has suppress unamanged code attribute set.
/// It is up to this class to ensure that the only calls that can go through must beeither done in Full Trust
/// or with RightsManagementPermission. This class exposes DRMFoo functions that perform demand on the
/// RightsManagementPermission and then call through to the matching member of the Private Static class
/// UnsafeNativeMethods
///
[SecurityCritical(SecurityCriticalScope.Everything)]
[StructLayout(LayoutKind.Sequential)]
internal class ActivationServerInfo
{
public uint Version;
[MarshalAs( UnmanagedType.LPWStr )]internal string PubKey = "";
[MarshalAs( UnmanagedType.LPWStr )]internal string Url = "";
}
///
/// Critical: This class server as a wrapper on top of private class UnsafeNativeMethods.
/// UnsafeNativeMethods has suppress unamanged code attribute set.
/// It is up to this class to ensure that the only calls that can go through must beeither done in Full Trust
/// or with RightsManagementPermission. This class exposes DRMFoo functions that perform demand on the
/// RightsManagementPermission and then call through to the matching member of the Private Static class
/// UnsafeNativeMethods
///
[SecurityCritical(SecurityCriticalScope.Everything)]
// Declare a class to represent unmanaged SYSTEMTIME structure expected by DRM SDK
[ StructLayout( LayoutKind.Sequential )]
internal class SystemTime
{
internal SystemTime (DateTime dateTime)
{
Year = (ushort)dateTime.Year;
Month = (ushort)dateTime.Month;
DayOfWeek = (ushort)dateTime.DayOfWeek;
Day = (ushort)dateTime.Day;
Hour = (ushort)dateTime.Hour;
Minute = (ushort)dateTime.Minute;
Second = (ushort)dateTime.Second;
Milliseconds = (ushort)dateTime.Millisecond;
}
static internal uint Size
{
get
{
return 8 * sizeof(short);
}
}
// construct it from memory buffer
internal SystemTime(byte[] dataBuffer)
{
Year = BitConverter.ToUInt16(dataBuffer,0);
Month = BitConverter.ToUInt16(dataBuffer,2);
DayOfWeek = BitConverter.ToUInt16(dataBuffer,4);
Day = BitConverter.ToUInt16(dataBuffer,6);
Hour = BitConverter.ToUInt16(dataBuffer,8);
Minute = BitConverter.ToUInt16(dataBuffer,10);
Second = BitConverter.ToUInt16(dataBuffer,12);
Milliseconds = BitConverter.ToUInt16(dataBuffer,14);
}
internal DateTime GetDateTime (DateTime defaultValue)
{
// It seems that unmanaged APIs use the all 0s values to indicate
// that Date Time isn't present
if ((Year == 0) &&
(Month == 0) &&
(Day == 0) &&
(Hour == 0) &&
(Minute == 0) &&
(Second == 0) &&
(Milliseconds == 0))
{
return defaultValue;
}
else
{
return new DateTime(Year, Month, Day,
Hour, Minute, Second, Milliseconds);
}
}
ushort Year =0;
ushort Month =0;
ushort DayOfWeek =0;
ushort Day =0;
ushort Hour =0;
ushort Minute =0;
ushort Second =0;
ushort Milliseconds =0;
}
///
/// Critical: This class server as a wrapper on top of private class UnsafeNativeMethods.
/// UnsafeNativeMethods has suppress unamanged code attribute set.
/// It is up to this class to ensure that the only calls that can go through must beeither done in Full Trust
/// or with RightsManagementPermission. This class exposes DRMFoo functions that perform demand on the
/// RightsManagementPermission and then call through to the matching member of the Private Static class
/// UnsafeNativeMethods
///
[SecurityCritical(SecurityCriticalScope.Everything)]
[StructLayout(LayoutKind.Sequential)]
internal class BoundLicenseParams
{
internal uint uVersion = 0;
internal uint hEnablingPrincipal = 0;
internal uint hSecureStore = 0;
[MarshalAs( UnmanagedType.LPWStr )]public string wszRightsRequested = null;
[MarshalAs( UnmanagedType.LPWStr )]public string wszRightsGroup = null;
//Actual members of DRMID
internal uint DRMIDuVersion = 0;
[MarshalAs( UnmanagedType.LPWStr )]public string DRMIDIdType = null;
[MarshalAs( UnmanagedType.LPWStr )]public string DRMIDId = null;
internal uint cAuthenticatorCount = 0;//reserved.should be 0.
internal IntPtr rghAuthenticators = IntPtr.Zero;
[MarshalAs( UnmanagedType.LPWStr )]public string wszDefaultEnablingPrincipalCredentials = null;
internal uint dwFlags = 0;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CriticalFileToken.cs
- MetadataProperty.cs
- HttpsTransportElement.cs
- HwndAppCommandInputProvider.cs
- OleDbErrorCollection.cs
- precedingquery.cs
- CngAlgorithm.cs
- CaseInsensitiveComparer.cs
- DesignerVerbCollection.cs
- LifetimeServices.cs
- XmlElementList.cs
- WindowsListViewSubItem.cs
- FrameworkRichTextComposition.cs
- StringAnimationUsingKeyFrames.cs
- SafeEventLogReadHandle.cs
- ContextMenuAutomationPeer.cs
- InvalidWMPVersionException.cs
- KeyboardNavigation.cs
- DataGridViewCellFormattingEventArgs.cs
- SHA384Cng.cs
- Proxy.cs
- MenuItemStyle.cs
- GcHandle.cs
- DriveInfo.cs
- FunctionImportMapping.cs
- FilePresentation.cs
- Wrapper.cs
- PassportAuthenticationModule.cs
- BamlResourceSerializer.cs
- RegexCode.cs
- ResourceWriter.cs
- xmlglyphRunInfo.cs
- AsyncResult.cs
- ProcessHostConfigUtils.cs
- TrackingLocationCollection.cs
- TemplateNodeContextMenu.cs
- BuildProviderCollection.cs
- InternalRelationshipCollection.cs
- TrustManagerMoreInformation.cs
- SafeFileMappingHandle.cs
- PersonalizableAttribute.cs
- QualificationDataItem.cs
- MD5.cs
- GregorianCalendar.cs
- PaperSource.cs
- ObjectDataSourceView.cs
- Image.cs
- SQLDateTime.cs
- VerificationAttribute.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AliasExpr.cs
- TextureBrush.cs
- WebBrowser.cs
- FloatUtil.cs
- CatalogPartChrome.cs
- GeneratedView.cs
- ResizeGrip.cs
- Color.cs
- RegexStringValidatorAttribute.cs
- ManualResetEvent.cs
- CachedFontFace.cs
- WebPartCollection.cs
- APCustomTypeDescriptor.cs
- ImageDrawing.cs
- SrgsToken.cs
- Lease.cs
- ButtonField.cs
- FileChangesMonitor.cs
- ImageListDesigner.cs
- ObjectViewListener.cs
- Schema.cs
- TransportReplyChannelAcceptor.cs
- TypeNameParser.cs
- WindowsButton.cs
- DataSourceSelectArguments.cs
- DiagnosticsConfigurationHandler.cs
- GeometryGroup.cs
- GridViewDeleteEventArgs.cs
- SqlCacheDependencySection.cs
- ImageMapEventArgs.cs
- TemplatePartAttribute.cs
- Border.cs
- CaseExpr.cs
- XmlConvert.cs
- FontDifferentiator.cs
- FieldAccessException.cs
- ErrorTableItemStyle.cs
- XLinq.cs
- GenericPrincipal.cs
- TabOrder.cs
- ActivationArguments.cs
- ConfigUtil.cs
- SQLInt64Storage.cs
- LabelAutomationPeer.cs
- RSAOAEPKeyExchangeDeformatter.cs
- TdsParserStateObject.cs
- LineGeometry.cs
- StatusBarItemAutomationPeer.cs
- SoundPlayer.cs
- EditorZoneBase.cs