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
- AuthenticateEventArgs.cs
- ExpressionBuilder.cs
- RegexCompiler.cs
- ButtonFlatAdapter.cs
- ValuePattern.cs
- FixedSOMFixedBlock.cs
- NetworkInformationPermission.cs
- TextRenderingModeValidation.cs
- StatusBarPanel.cs
- FileLoadException.cs
- PrintPreviewControl.cs
- ContainerParaClient.cs
- ToolStripDesignerAvailabilityAttribute.cs
- WebPartCancelEventArgs.cs
- XmlDownloadManager.cs
- LoginView.cs
- ResXBuildProvider.cs
- FrameSecurityDescriptor.cs
- DataGridViewCellCancelEventArgs.cs
- AdornedElementPlaceholder.cs
- TreeViewEvent.cs
- SafeThreadHandle.cs
- WsdlBuildProvider.cs
- SafeLibraryHandle.cs
- ToolStripPanelRenderEventArgs.cs
- SerializationInfo.cs
- WindowsFormsSectionHandler.cs
- TargetControlTypeAttribute.cs
- BoundField.cs
- ExportOptions.cs
- IPipelineRuntime.cs
- CacheAxisQuery.cs
- CookielessHelper.cs
- FileDialog_Vista.cs
- SimpleMailWebEventProvider.cs
- DataControlField.cs
- RuntimeArgumentHandle.cs
- DiscoveryReferences.cs
- ParameterBuilder.cs
- HashMembershipCondition.cs
- RelatedView.cs
- RegistryKey.cs
- NumericUpDown.cs
- OleDragDropHandler.cs
- SoapObjectReader.cs
- OptimizedTemplateContentHelper.cs
- XPathPatternBuilder.cs
- CharAnimationUsingKeyFrames.cs
- WebPartEventArgs.cs
- ValidationHelper.cs
- Graphics.cs
- CompositeKey.cs
- SubMenuStyleCollection.cs
- XmlAttributeAttribute.cs
- WhitespaceRuleReader.cs
- HopperCache.cs
- SafeHandles.cs
- XmlNavigatorStack.cs
- PartialTrustVisibleAssembliesSection.cs
- TableStyle.cs
- UnsafeNetInfoNativeMethods.cs
- PointConverter.cs
- TriggerBase.cs
- Main.cs
- MetaTableHelper.cs
- UserControl.cs
- PersonalizationAdministration.cs
- StringUtil.cs
- Predicate.cs
- RawStylusInputCustomDataList.cs
- ErrorInfoXmlDocument.cs
- XmlEncodedRawTextWriter.cs
- FacetEnabledSchemaElement.cs
- BindingMAnagerBase.cs
- MembershipValidatePasswordEventArgs.cs
- ConfigurationManagerInternalFactory.cs
- EntitySqlException.cs
- XmlValueConverter.cs
- InstanceDescriptor.cs
- InternalBufferOverflowException.cs
- SetMemberBinder.cs
- PointCollectionValueSerializer.cs
- ExtensionsSection.cs
- UrlMappingsModule.cs
- CustomAssemblyResolver.cs
- BuildDependencySet.cs
- HtmlProps.cs
- RijndaelManaged.cs
- _NegotiateClient.cs
- DataSourceProvider.cs
- EUCJPEncoding.cs
- TextServicesDisplayAttributePropertyRanges.cs
- FileDialog_Vista.cs
- QilName.cs
- StylusPlugin.cs
- Empty.cs
- EnumValAlphaComparer.cs
- WpfKnownTypeInvoker.cs
- LazyTextWriterCreator.cs
- ClientConfigPaths.cs