Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12345678]
 NVideoOS
 NConfigurationApi
 NClientService
 NPlatform
 NAdmin
 NBackground
 NClient
 NConfigurationItems
 NData
 NEventsAndState
 NEventsData
 NJsonHandling
 NLicense
 NLive
 NLog
 NLogin
 NMessaging
 NMetadata
 NOAuth
 NProperties
 NProxy
 NResources
 NRuleAction
 NSearch
 NUI
 NUtil
 CArgumentMIPExceptionThrow by MIP Environment when an argument is incorrect. Check innerException for more info
 CArgumentNullMIPExceptionThrow by MIP Environment when an argument is null. Check innerException for more info
 CClientControlThe class to access Client relevant methods
 CClientTypeNotAllowedMIPExceptionThrow when the provided client type is not allowed to connect
 CCommunicationContentMIPExceptionThis exception is thrown if the received response is badly formed, is missing important information or contains invalid values. This exception may indicate a compatibility issue between the client and the server
 CCommunicationMIPExceptionThrown when an underlying protocol threw an Exception, or received a Serialized Exception from the server side
 CConfigItemAn overloaded class of the Item class.
Can be subclassed when you want new MIP Items and modifications to existing MIP Items reflect into the mother environments settings. Used by the Smart Client when creating and modifying Views, layouts and view groups in the smart client.
Used by the Administrators to create, modify and delete generic events. Only supported for e-code family! For c-code use Configuration API instead
 CConfigurationConfiguration provides access to all configuration objects within the Milestone Platform.
This covers well known Milestone objects like Cameras, Servers, Presets events etc, but also 3rd party plug-in objects can be accessed though this interface.
Access to this class is done via Configuration.Instance
 CCroppingInfoClass returned as part of the BitmapData class
 CEndpointNotFoundCommunicationMIPExceptionThrown when specified host address, URL or IP address does not exist or is not responding
 CEnvironmentCapabilitiesUsed by the EnvironmentManager.Instance.HasCapability() method
 CEnvironmentManagerThe EnvironmentManager is the top class for the MIP Environment. The class can always be accessed though: EnvironmentManager.Instance As it is a singleton
 CEnvironmentOptionsOptions available for the EnvironmentManager.Instance.EnvironmentOptions dictionary
 CFQIDThe Fully Qualified ID contains a complete set of fields to contact a server and get further details. The purpose is to identify an Item to the level where it contains enough information for contacting the correct server, on a relevant protocol, and obtain further information for the item from that server. The key identification are build up of:
1) ServerId.Id Guid - identify a specific server or set of configuration.
2) ParentId Guid - the parent FQID will contain this in the ObjectId field
3) ObjectId Guid - a unique id for this object (Item)
If an FQID does not have a parent, the parentId is Guid.Empty
To make lookup easier and to assist in displaying relevant selection choices for users, the following type fields are present:
1) FolderType - identify if this is some kind of grouping or collection
2) Kind Guid - identifies what type of object this FQID identifies.
The Kind class contains a set of predefined values for all Milestone known Kinds, e.g. Kind.Camera is assigned to FQIDs for cameras and groups of cameras.

Note: When some object cannot be identified by a Guid, but rather a string, the ObjectIdString can be used as an alternative to the ObjectId. It is though highly recommended to fill the ObjectId if possible.
The FQID is primarily created by plug-in developed ItemManagers and during deserialization of configurations.
This method is NOT intended for overrides, as MIP Environment need to be able to deserialize a XML string to a correct FQID object.
A camera sample for XProtect Corporate:
 CGenericEventConfigItemA base class which allows generic events to be reflected in the administrator kernels' as "shadow" user-defined events. This base class is not supposed to be instanciated directly. You must use the CreateGenericEventConfigItem() method from the Configuration class to create instance
 CImplementationMIPExceptionThrown when some part of the plug-in has not been implemented correctly.
A fix is often possible by changing the code
 CInternalMIPExceptionThrow by MIP Environment. This may be a 'should not happen' and indicate some internal MIP implementation problem
 CInvalidOperationMIPExceptionThis exception is thrown if request sent from the client is invalid due to the state of the server
 CInvalidParameterMIPExceptionThrown when a parameter is not valid
A fix is often possible by changing the code
 CISourceDataBase interface for common properties between different video source datas
 CItemThis class is used as a base class of all objects and items, be it cameras, audio sources or plug-in developed objects. For simple Items that does not have any Children this base class itself can be used, often though you will need to implement a class that inherit from this Item and make overrides to GetChildren, HasChildren, GetParent and perhaps more methods
 CItemProperties
 CIVideoSourceDataInterface for common properties between different video source datas
 CKindKind is a class that contains Milestone defined kinds as static members. Each field is a GUID.
New plugins defines their own Kinds on the plugins ItemNodes.
In the ItemPicker each Kind is represented with a specific icon. The ItemPicker uses the icon defined on the ItemNode.
During load of the plugins the plug-in defined ItemNodes and their Kinds and Icons are added to the static Hashtable members of this class.
 CLicenseMIPExceptionThrow by MIP Environment when the server license limit has been reached. Ask operator to check Management Client license overview.
 CLicenseServiceMIPExceptionThrow when concurrent license check cannot get hold of the LicenseService.
Check that the LicenseService is running in the EventServer, and that the ServiceRegistration contains the correct URL to this service
 CMessageFilterNotRegisteredMIPExceptionThrown when MessageCommunication is used, and the server does not have any filter registered
 CMIPExceptionThe common Exception for all exceptions thrown by the MIP environment
 CNotAuthorizedMIPExceptionThrow by the SecurityAccess class when calling CheckPermission, or when using the configuration API and the server is accessed for an object that is not accessible for user that is logged in
 CNotDualAuthorizedMIPExceptionThrow by the Login process if server requires dual authentication
 CNotSupportedMIPExceptionThrow by MIP Environment when calling a server that does not support the current method, check version of server side product
 CNoVideoInTimeSpanMIPExceptionThrown when an export is started, but video is available in the given time span
 CPathNotFoundMIPExceptionThrow by MIP Environment when calling a server that does not have a configuration item corresponding to the provided path
 CPluginDefinitionThe PluginDefinition is the ‘entry’ point to any plug-in.
This is the starting point for any plug-in development and the class MUST be available for a plug-in to be loaded.
Here the references to all other plug-in known objects and classes are defined. The class is an abstract class where all implemented methods and properties need to be declared with override. The class is constructed when the environment is loading the DLL
 CPositioningInformationDefines the position for an Item, the direction and view zone
 CRestApiMIPExceptionThrown when RestAPI communication has issues
 CServerFaultMIPExceptionIs thrown by the server having internal issues. Can be thrown when using configuration api
 CServerIdThe ServerId holds enough information for creating a connection.
Typically this can be used to construct an URL.
For plug-in developed solutions the ServerId need to be understood by the plug-ins own ItemManager, as this class is the primary place for creating, deleting and getting Items.
 CTimeoutCommunicationMIPExceptionThrown when a timeout has happened on an underlying session
 CUserContextThis class is used for stand alone applications and services that need to handle multiple users logging in to the same set of server(s).
Some functions and methods are required to be called though this class instead of the usual Configuration.Instance.SomeMethod
 CValidateAndSaveMIPExceptionCan be thrown by the ValidateAndSaveUserControl and ValidateAndSaveItemSummary methods implemented by MIP Plug-ins, when the user entry is not correct.
The management client/application will show a standard error dialog containing the message from the exception
 CAlarmCommandClientThe alarm command token is a WCF client class used against XProtect Corporate to handle alarms. VideoOS.Platform.Proxy.AlarmClient.IAlarmClient for a description of the available methods. Use VideoOS.Platform.Proxy.AlarmClient.AlarmClientManager whenever possible instead
 CCommunicationServiceClient
 CIAlarmCommand
 CIAlarmCommandChannel
 CICommunicationService
 CICommunicationServiceChannel
 CILicenseService
 CILicenseServiceChannel
 CLicenseServiceClient