Hansoft PM SDK
The Hansoft PM SDK can be used to integrate the Hansoft Project Server with other systems. It gives access to most things in the server database and allows hooking into document management checkins to allow changes to metadata and file contents on all checkins. Please check out Release Notes for changes since the last version of the SDK.
Hansoft SDK Overview
The current version of the SDK allows reading and writing to the server database. This is accomplished by loading a dll that exposes various functions for reading and manipulating the project database.
The Hansoft SDK tries to be backwards compatible where possible. This accomplished by downloading an implementation of the SDK from the server when it's upgraded. This allows you to update your server without rebuilding the applications that uses the SDK. To use new functionality it is required to update to a new version of the SDK interface that exposes the new functionality.
The SDK is implemented by impersonating a client with special privileges. This allows for some sanity checks, but it is still possible to destroy the project database, so you should develop and test your application on a separate development server. For details see Developing with Hansoft SDK.
Because the is SDK implemented purely by communicating with the server it is not currently possible to extend functionality in the Hansoft Client application.
Developing with Hansoft SDK
Development Environment Connecting to a Database
Development Environment
To use the SDK you need to include HPMSdk.h header file in the code that you want to use the SDK in. You should also add HPMSdk.c to your application or module. You should put the HPMSdk.dll in the same directory as your application or set the directory where the DLL is stored with the HPMInit._pLibraryPath parameter. When a session is connected the SDK will create the directory "VersionsSDK" in the directory of the process the SDK is running from or in the directory specified by the SessionOpen._pWorkingDirectory parameter. You should make sure the process has write permissions to this directory. In this directory the SDK will download the SDK Implementation dll that implements the SDK functions for a particular version of Hansoft Project Server. This setup allows you to upgrade the server without rebuilding the integration components that use the SDK unless you want new functionality. There are also a Java, a .NET and a C++ wrapper for the SDK. No separate documentation is available for these, but they are automatically generated from the C headers so the C documentation still applies, but with some mechanism being different. Check out the samples to see a basic Java, .NET and C++ implementation.
Connecting to a Database
To connect to a server with the SDK you need to create a special SDK user in the database. This user can only be created by the "Administrator" user. You need one user for every session you want to connect to the server. If you connect with the same user as another session that session will be dropped from the server.
To be able to create SDK users in the database you need to have a license that has SDK support enabled. If you need SDK support on your license or SessionOpen, but not beforce you have initialized the SDK with HPMInit.
If you develop a solution that requires more than one SDK session, e.g. a web integration, you should use SessionOpenVirtual to use the SDK's builtin session pool.
See Also
HPM SDK Basic Types
Basic types used in the SDK.
Type | Description |
---|---|
HPMUInt8 | Unsigned 8 bit integer type. |
HPMInt8 | Signed 8 bit integer type. |
HPMUInt16 | Unsigned 16 bit integer type. |
HPMInt16 | Signed 16 bit integer type. |
HPMUInt32 | Unsigned 32 bit integer type. |
HPMInt32 | Signed 32 bit integer type. |
HPMUInt64 | Unsigned 64 bit integer type. |
HPMInt64 | Signed 64 bit Integer type. |
HPMFP32 | 32 bit floating point type. |
HPMFP64 | 64 bit floating point type. |
HPMUniqueID | Used to specify a unique database identifier. Resources, projects, tasks and other items are specified with this type. |
HPMError | Used as a return type for values. Signed 32 bit integer type. |
HPMAsciChar | This is the character type that some basic strings use. 8 bit wide. |
HPMChar | This is the character type that most strings use. |
HPMString | Pointer to a HPMChar string that is used to specify strings in the SDK. |
HPMUserContext | A user context used for specifying context by the SDK user. |
Comments
These are the basic types that are used to communicate with the SDK.
ManagedComplexTypes
HPMBoolean
NodeTypeMap
"HPMChar*=HPMString"
NodeBasicTypes
HPMUInt8 HPMInt8 HPMUInt16 HPMInt16 HPMUInt32 HPMInt32 HPMUInt64 HPMInt64 HPMFP32 HPMFP64 HPMError
NodeNativeTypeMap
"HPMString=String,Utf8Value,string" "HPMInt32=Number,Int32Value,number" "HPMUInt32=Number,Uint32Value,number" "HPMInt64=BigInt,Int64Value,bigint" "HPMUInt64=BigInt,Uint64Value,bigint" "HPMUInt8=Uint8Array,Data,Uint8Array" "HPMInt8=Int8Array,Data,Int8Array" "HPMUInt16=Number,Uint32Value,number" "HPMInt16=Number,Int32Value,number" "HPMFP32=Number,FloatValue,number" "HPMFP64=Number,DoubleValue,number"
JavaNativeTypeMap
"HPMString=String,jstring,L" "HPMInt32=int,jint,I" "HPMUInt32=int,jint,I" "HPMInt64=long,jlong,J" "HPMUInt64=long,jlong,J" "HPMUInt8=byte,jbyte,B" "HPMInt8=byte,jbyte,B" "HPMUInt16=short,jshort,S" "HPMInt16=short,jshort,S" "HPMFP32=float,jfloat,F" "HPMFP64=double,jdouble,D"
EHPMSDK
Misc SDK enums.
enum EHPMSDK {
EHPMSDK_Version = 69889,
};
Values
EHPMSDK_Version
The version of the SDK.
EHPMError
One of these values will always be returned when calling a function in the SDK.
enum EHPMError {
EHPMError_NoError = 0,
EHPMError_DllNotFound = 1,
EHPMError_DllInvalid = 2,
EHPMError_NewVersionOfSDKRequired = 3,
EHPMError_CouldNotConnectToHost = 4,
EHPMError_GeneralLoginError = 5,
EHPMError_FailedToConnectToDatabase = 6,
EHPMError_DatabaseDoesNotExist = 7,
EHPMError_DatabaseNotOnline = 8,
EHPMError_PasswordOrResourceInvalid = 9,
EHPMError_LicenseInvalid = 10,
EHPMError_SyncError = 11,
EHPMError_OtherError = 12,
EHPMError_ConnectionLost = 13,
EHPMError_InvalidID = 14,
EHPMError_PasswordRequired = 15,
EHPMError_CallbackAlreadyExists = 16,
EHPMError_CallbackDoesNotExist = 17,
EHPMError_BlockTimeout = 18,
EHPMError_ResourceNotMemberOfProject = 19,
EHPMError_DataNotYetAvailable = 20,
EHPMError_ConversionNotSupported = 21,
EHPMError_IndexOutOfRange = 22,
EHPMError_FunctionalityNotInitialized = 23,
EHPMError_AlreadyInitialized = 24,
EHPMError_OperationAlreadyInProgress = 25,
EHPMError_AccessDenied = 26,
EHPMError_FileDoesNotExist = 27,
EHPMError_LicenseViolation = 28,
EHPMError_ParseError = 29,
EHPMError_InvalidCustomSettingsType = 30,
EHPMError_NotAvailableInClientSDK = 31,
EHPMError_OnlyAvailableInClientSDK = 32,
EHPMError_Deprecated = 33,
EHPMError_OnlyAvailableInQAProject = 34,
EHPMError_InvalidSessionKeySize = 35,
EHPMError_InvalidIdentifier = 36,
EHPMError_SessionPoolNotInitialized = 37,
EHPMError_SessionPoolSessionNotAvailable = 38,
EHPMError_SessionPoolNotAllowed = 39,
EHPMError_SessionPoolNotAvailableInClientSDK = 40,
EHPMError_LoginDisabled = 41,
EHPMError_Partitioned = 42,
EHPMError_WorkingDirectoryNotAvailableInClientSDK = 43,
EHPMError_NewVersionOfServerRequired = 44,
EHPMError_IDNoLongerExists = 45,
EHPMError_NotValidOnTaskWithProxy = 46,
EHPMError_FullIdentifierNotAvailaibleInTranslation = 47,
EHPMError_IdentifierNotAvailaibleInTranslation = 48,
EHPMError_SDKNotAllowedToSetAuthOrCredential = 49,
EHPMError_ImageFormatNotSupported = 50,
EHPMError_CropAreaOutOfBounds = 51,
EHPMError_NoVersionControlHistory = 52,
EHPMError_TimeZoneOrder = 53,
EHPMError_ServerTimedOut = 54,
EHPMError_CouldNotLoadImpDll = 55,
EHPMError_SecureConnectionRefused = 56,
EHPMError_SecureConnectionNotTrusted = 57,
EHPMError_Certificate = 58,
EHPMError_ServerDoesNotSupportSecureConnection = 59,
EHPMError_CertificateSettingsNotApplicableInClientSDK = 60,
EHPMError_DateTimeOutOfRange = 61,
EHPMError_CouldNotCreateSDKInterface = 62,
EHPMError_ServerVersionMismatch = 63,
EHPMError_ServerDoesNotSupportPlatform = 64,
EHPMError_ServerTimeMismatch = 65,
EHPMError_InvalidDashboardPageLayout = 66,
EHPMError_InvalidDashboardConfiguration = 67,
EHPMError_UserNotMemberOfProject = 68,
EHPMError_DefaultQAWorkflowCannotBeDeleted = 69,
EHPMError_DefaultQAWorkflowMustBeVisibleInQA = 70,
EHPMError_NotAvailableInQAProject = 71,
EHPMError_BoardTemplateInvalid = 72,
EHPMError_ReadLockNotAvailableOnVirtualSession = 73,
EHPMError_ReadLockSet = 74,
EHPMError_InvalidHansoftURL = 75,
EHPMError_NoHansoftTaskFoundInURL = 76,
EHPMError_GUIDInURLNotValidForThisDatabase = 77,
EHPMError_InvalidImpersonateID = 78,
EHPMError_InvalidMilestones = 79,
EHPMError_EmptyString = 80,
EHPMError_ResourceIsProjectMemberDueToGroup = 81,
EHPMError_ResourceAlreadyMemberOfProject = 82,
EHPMError_TaskAllocationPerecentOutOfBounds = 83,
EHPMError_ConnectionAlreadyExists = 84,
};
Values
EHPMError_NoError
Indicates that the function was successful.
EHPMError_DllNotFound
The SDK dll could not be found in the current path.
EHPMError_DllInvalid
The SDK dll did not contain the expected functions. This could be due to an old dll being used with a new SDK header file.
EHPMError_NewVersionOfSDKRequired
This operation cannot be performed with this version of the SDK, you need to recompile your program with the newest version of the SDK.
EHPMError_CouldNotConnectToHost
The connection to the server was unsuccessful.
EHPMError_GeneralLoginError
Unspecified login error.
EHPMError_FailedToConnectToDatabase
Internal error occurred when trying to login to the database on the server.
EHPMError_DatabaseDoesNotExist
The database specified does not exist on the server.
EHPMError_DatabaseNotOnline
The database specified is not online and cannot be connected to.
EHPMError_PasswordOrResourceInvalid
The resource was not found or the password was incorrect when logging in.
EHPMError_LicenseInvalid
The license has expired, too many resources have been created on the server or the SDK module is not enabled in the license.
EHPMError_SyncError
An error occurred when the client was downloading the database.
EHPMError_OtherError
Unspecified error.
EHPMError_ConnectionLost
The connection to the server has been lost, it's up to the user of the SDK to try to connect again.
EHPMError_InvalidID
The unique identifier specified to the function is not valid.
EHPMError_PasswordRequired
A password must be specified at least one character long.
EHPMError_CallbackAlreadyExists
The callback with the same function pointer and context has already been registered.
EHPMError_CallbackDoesNotExist
The specified callback does not exist.
EHPMError_BlockTimeout
A blocking operation timed out. This usually happens if the connection to the server was lost, it could also happen if an operation takes longer that 120 seconds to process on the server. When this happens you should not assume that the function finished or did not finish.
EHPMError_ResourceNotMemberOfProject
The resource specified was not a member of the project where the operation was performed. This usually happens when you try to set a resource to some task property and the resource isn't a member of that project.
EHPMError_DataNotYetAvailable
The data requested was not yet available. You should wait for a callback signifying that the data is available or poll the function until the requested data is returned.
EHPMError_ConversionNotSupported
The data cannot be retrieved in the requested format because the conversion isn't supported.
EHPMError_IndexOutOfRange
The index supplied to the function was out of range.
EHPMError_FunctionalityNotInitialized
The function called needs to have its functionality initialized before this function can be called.
EHPMError_AlreadyInitialized
The functionality has already been initialized.
EHPMError_OperationAlreadyInProgress
An operation is already in progress and you must wait until it is finished before calling this function.
EHPMError_AccessDenied
Access was denied by the server.
EHPMError_FileDoesNotExist
The file does not exist.
EHPMError_LicenseViolation
The command would have caused a license violation and was aborted.
EHPMError_ParseError
Failed to parse the string that was sent into the function. Additional information might be available through UtilGetLastErrorDescription.
EHPMError_InvalidCustomSettingsType
The custom settings type specified was not valid for this function.
EHPMError_NotAvailableInClientSDK
The called functions is not available in the client SDK.
EHPMError_OnlyAvailableInClientSDK
The called functions is only available in the client SDK.
EHPMError_Deprecated
The function called has been deprecated in this version of the SDK. Check SDK release notes for more information.
EHPMError_OnlyAvailableInQAProject
The called function is only available for items residing in a QA project.
EHPMError_InvalidSessionKeySize
The session key provided is too large or too small.
EHPMError_InvalidIdentifier
The authentication method identifier provided is invalid (empty or too long).
EHPMError_SessionPoolNotInitialized
The session pool could not be initialized.
EHPMError_SessionPoolSessionNotAvailable
No available sessions in the session pool.
EHPMError_SessionPoolNotAllowed
This operation is not allowed on a virtual session.
EHPMError_SessionPoolNotAvailableInClientSDK
The session pool is not available in the client SDK.
EHPMError_LoginDisabled
The login for the resource has been disabled.
EHPMError_Partitioned
Unable to complete authentication due to network problems
EHPMError_WorkingDirectoryNotAvailableInClientSDK
The working directory is not available in the client SDK.
EHPMError_NewVersionOfServerRequired
The application was developed with a version of the SDK, that requires that the server is updated to a newer version.
EHPMError_IDNoLongerExists
The identifier specified in the command never existed or has been deleted since the command was sent to server.
EHPMError_NotValidOnTaskWithProxy
The operation cannot be performed on a task that has a proxy.
EHPMError_FullIdentifierNotAvailaibleInTranslation
The full translation identifier is not available in the translation.
EHPMError_IdentifierNotAvailaibleInTranslation
The translation identifier is not available in the translation.
EHPMError_SDKNotAllowedToSetAuthOrCredential
The SDK is not allowed to set authentication provider or credential check provider
EHPMError_ImageFormatNotSupported
Image format not supported by SDK.
EHPMError_CropAreaOutOfBounds
The specified crop area is larger than the original image.
EHPMError_NoVersionControlHistory
No version control history exist.
EHPMError_TimeZoneOrder
Not possible to set timezone start before or equal to previous timezone end or to set timezone end before timezone start.
EHPMError_ServerTimedOut
Connection to server timed out.
EHPMError_CouldNotLoadImpDll
Could not load downloaded SDK implementation dll.
EHPMError_SecureConnectionRefused
Secure connection refused.
EHPMError_SecureConnectionNotTrusted
Secure connection not trusted.
EHPMError_Certificate
Certificate error. A more detailed description can be found with UtilGetLastErrorDescription.
EHPMError_ServerDoesNotSupportSecureConnection
Server does not support SSL.
EHPMError_CertificateSettingsNotApplicableInClientSDK
The certificate settings are not applicable in the client SDK.
EHPMError_DateTimeOutOfRange
The provided date time parameter is out of range.
EHPMError_CouldNotCreateSDKInterface
Could not create the SDK interface from the downloaded SDK implementation dll.
EHPMError_ServerVersionMismatch
A version mismatch was found in the SDK implementation dll.
EHPMError_ServerDoesNotSupportPlatform
The server does not support your SDK platform or architecture.
EHPMError_ServerTimeMismatch
The server time differs a lot from time the time on this computer. Connection is not allowed.
EHPMError_InvalidDashboardPageLayout
The dashboard page layout was invalid. Ensure the number of columns matches the layout type.
EHPMError_InvalidDashboardConfiguration
The dashboard configuration was invalid. Additional information might be available through UtilGetLastErrorDescription.
EHPMError_UserNotMemberOfProject
The SDK user running the command is not member of the project that the command requested. See also HPMResourceProperties::m_SDKSyncMethod.
EHPMError_DefaultQAWorkflowCannotBeDeleted
The default QA workflow cannot be deleted.
EHPMError_DefaultQAWorkflowMustBeVisibleInQA
The default QA workflow must be visible in the QA section.
EHPMError_NotAvailableInQAProject
The called function is not available for QA projects.
EHPMError_BoardTemplateInvalid
The template is invalid or does not exist.
EHPMError_ReadLockNotAvailableOnVirtualSession
Read lock not available on virtual sessions.
EHPMError_ReadLockSet
A read lock is already set.
EHPMError_InvalidHansoftURL
The URL provided is not a valid Hansoft URL.
EHPMError_NoHansoftTaskFoundInURL
No Hansoft task was found in the URL.
EHPMError_GUIDInURLNotValidForThisDatabase
The database GUID found the Hansoft URL is not valid for this database.
EHPMError_InvalidImpersonateID
The ID set with ResourceImpersonate is no longer valid.
EHPMError_InvalidMilestones
The milestones are invalid.
EHPMError_EmptyString
Empty string is not allowed.
EHPMError_ResourceIsProjectMemberDueToGroup
The resource specified is a project member due to its group membership.
EHPMError_ResourceAlreadyMemberOfProject
The resource specified is already a member of the project.
EHPMError_TaskAllocationPerecentOutOfBounds
The task resource allocation percent was set out of bounds.
EHPMError_ConnectionAlreadyExists
The connection between the two tasks already exists.
EHPMDateFormat
Date formats. Currently only used for HPMResourceGlobalSettings::m_DateFormat
enum EHPMDateFormat {
EHPMDateFormat_NewVersionOfSDKRequired = 0,
EHPMDateFormat_YYYY_MM_DD_ISO8601 = 1,
EHPMDateFormat_MM_DD_YYYY = 2,
EHPMDateFormat_DD_MM_YYYY = 3,
EHPMDateFormat_YYYY_MMM_DD = 4,
EHPMDateFormat_MMM_DD_YYYY = 5,
EHPMDateFormat_DD_MMM_YYYY = 6,
EHPMDateFormat_WEEKDAY_YY_MM_DD = 7,
EHPMDateFormat_WEEKDAY_MM_DD_YY = 8,
EHPMDateFormat_WEEKDAY_DD_MM_YY = 9,
EHPMDateFormat_FromLanguage = 10,
};
Values
EHPMDateFormat_NewVersionOfSDKRequired
The date format did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this format.
EHPMDateFormat_YYYY_MM_DD_ISO8601
ISO 8601 format
EHPMDateFormat_MM_DD_YYYY
MM-DD-YYYY format
EHPMDateFormat_DD_MM_YYYY
DD-MM-YYYY format
EHPMDateFormat_YYYY_MMM_DD
YYYY-MMM-DD format
EHPMDateFormat_MMM_DD_YYYY
MMM-DD-YYYY format
EHPMDateFormat_DD_MMM_YYYY
DD-MMM-YYYY format
EHPMDateFormat_WEEKDAY_YY_MM_DD
Weekday-YY-MM-YY format
EHPMDateFormat_WEEKDAY_MM_DD_YY
Weekday-MM-DD-YY format
EHPMDateFormat_WEEKDAY_DD_MM_YY
Weekday-DD-MM-YY format
EHPMDateFormat_FromLanguage
The date format is taken from the current set language
See Also
HPMResourceGlobalSettings, EHPMResourceGlobalSettingsFlag
EHPMPeriodicityType
Periodicity type. This enum specifies different types of periodicity. Used by HPMProjectHistoryAutoSaveSettings and HPMProjectEmailSettings.
enum EHPMPeriodicityType {
EHPMPeriodicityType_NewVersionOfSDKRequired = 0,
EHPMPeriodicityType_Never = 1,
EHPMPeriodicityType_Daily = 2,
EHPMPeriodicityType_Weekly = 3,
};
Values
EHPMPeriodicityType_NewVersionOfSDKRequired
The periodicity type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this type.
EHPMPeriodicityType_Never
Disabled.
EHPMPeriodicityType_Daily
Daily periodicity.
EHPMPeriodicityType_Weekly
Weekly periodicity.
See Also
HPMProjectHistoryAutoSaveSettings, HPMProjectEmailSettings
EHPMWallGroupingType
Wall grouping mode. Used by HPMTaskWallPosition.
enum EHPMWallGroupingType {
EHPMWallGroupingType_NewVersionOfSDKRequired = 0,
EHPMWallGroupingType_DefaultColumn = 1,
EHPMWallGroupingType_CustomColumn = 2,
EHPMWallGroupingType_CustomGroups = 3,
};
Values
EHPMWallGroupingType_NewVersionOfSDKRequired
The grouping type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this grouping type.
EHPMWallGroupingType_DefaultColumn
The specified grouping is one of the EHPMProjectDefaultColumn enum.
EHPMWallGroupingType_CustomColumn
The specified grouping is the hash of a custom column.
EHPMWallGroupingType_CustomGroups
The specified grouping is a custom grouping.
See Also
EHPMResourceGroupingType
Resource grouping type type used for HPMResourceDefinition::m_Type, HPMResourceReference::m_ResourceType
enum EHPMResourceGroupingType {
EHPMResourceGroupingType_NewVersionOfSDKRequired = 0,
EHPMResourceGroupingType_Resource = 1,
EHPMResourceGroupingType_ResourceGroup = 2,
EHPMResourceGroupingType_AllProjectMembers = 3,
};
Values
EHPMResourceGroupingType_NewVersionOfSDKRequired
The resource grouping type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this grouping type.
EHPMResourceGroupingType_Resource
The resource grouping is a resource.
EHPMResourceGroupingType_ResourceGroup
The resource grouping is a resource group.
EHPMResourceGroupingType_AllProjectMembers
The resource grouping is all members of the project.
See Also
HPMResourceDefinition, HPMProjectDetailedAccessRule, HPMProjectWorkflowObject
EHPMCustomSettingsType
Custom settings type used for GlobalGetCustomSettingsValue, ProjectGetCustomSettingsValue, ResourceGetCustomSettingsValue, ProjectResourceGetCustomSettingsValue, GlobalSetCustomSettingsValue, ProjectSetCustomSettingsValue, ResourceSetCustomSettingsValue and ProjectResourceSetCustomSettingsValue
enum EHPMCustomSettingsType {
EHPMCustomSettingsType_NewVersionOfSDKRequired = 0,
EHPMCustomSettingsType_Admin = 1,
EHPMCustomSettingsType_Normal = 2,
EHPMCustomSettingsType_Custom = 3,
};
Values
EHPMCustomSettingsType_NewVersionOfSDKRequired
The setting type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this settings type.
EHPMCustomSettingsType_Admin
The setting refers to the administrative settings.
EHPMCustomSettingsType_Normal
The setting refers to the normal settings. For a resource this is personal options. For a project this is the settings that main project managers can set from the project view.
EHPMCustomSettingsType_Custom
The setting refers to a custom dialog initiated directly from a client dll.
See Also
GlobalGetCustomSettingsValue, ProjectGetCustomSettingsValue, ResourceGetCustomSettingsValue, ProjectResourceGetCustomSettingsValue, GlobalSetCustomSettingsValue, ProjectSetCustomSettingsValue, ResourceSetCustomSettingsValue, ProjectResourceSetCustomSettingsValue
EHPMReportViewType
Report view type used for HPMReport::m_ViewType
enum EHPMReportViewType {
EHPMReportViewType_NewVersionOfSDKRequired = 0,
EHPMReportViewType_BugsReportedByMe = 1,
EHPMReportViewType_AllBugsInProject = 2,
EHPMReportViewType_MyWork = 3,
EHPMReportViewType_ScheduleMainProject = 4,
EHPMReportViewType_GlobalResourceAllocation = 5,
EHPMReportViewType_GlobalFind = 6,
EHPMReportViewType_ProjectHistory = 7,
EHPMReportViewType_AgileMainProject = 8,
EHPMReportViewType_AgileBacklog = 9,
};
Values
EHPMReportViewType_NewVersionOfSDKRequired
The view type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this view type.
EHPMReportViewType_BugsReportedByMe
View bugs reported by me.
EHPMReportViewType_AllBugsInProject
View all bugs in project.
EHPMReportViewType_MyWork
View my work.
EHPMReportViewType_ScheduleMainProject
View project as task scheduling.
EHPMReportViewType_GlobalResourceAllocation
View resource allocation.
EHPMReportViewType_GlobalFind
View global find in all projects.
EHPMReportViewType_ProjectHistory
View project history.
EHPMReportViewType_AgileMainProject
View project as agile.
EHPMReportViewType_AgileBacklog
View agile backlog.
See Also
EHPMReportFlag
Report flags used for HPMReport::m_Flags
enum EHPMReportFlag {
EHPMReportFlag_None = 0,
EHPMReportFlag_ContinueToFindWhileInReportMode = 8,
};
Values
EHPMReportFlag_None
TBD
EHPMReportFlag_ContinueToFindWhileInReportMode
When the report is active users can continue to use Find.
See Also
EHPMColumnType
Column type used for HPMColumn::m_ColumnType
enum EHPMColumnType {
EHPMColumnType_NewVersionOfSDKRequired = 0,
EHPMColumnType_DefaultColumn = 1,
EHPMColumnType_CustomColumn = 2,
};
Values
EHPMColumnType_NewVersionOfSDKRequired
The column type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this column type.
EHPMColumnType_DefaultColumn
The specified column is one of the EHPMProjectDefaultColumn enum.
EHPMColumnType_CustomColumn
The specified column is the hash of a custom column.
See Also
EHPMProjectDefaultColumn, HPMColumn
EHPMFindSelectionType
Selection type used for HPMFindCondition::m_Type
enum EHPMFindSelectionType {
EHPMFindSelectionType_NewVersionOfSDKRequired = 0,
EHPMFindSelectionType_Column = 1,
EHPMFindSelectionType_Fixed = 2,
};
Values
EHPMFindSelectionType_NewVersionOfSDKRequired
The selection type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this selection type.
EHPMFindSelectionType_Column
The specified column is the hash of a custom column.
EHPMFindSelectionType_Fixed
The specified column us one of EHPMFilterType enum.
See Also
EHPMFilterType
Filter type used for HPMFindCondition::m_SelectionID
enum EHPMFilterType {
EHPMFilterType_NewVersionOfSDKRequired = 0,
EHPMFilterType_None = 1,
EHPMFilterType_Incompleted = 2,
EHPMFilterType_Completed = 3,
EHPMFilterType_InProgress = 4,
EHPMFilterType_Overdue = 5,
EHPMFilterType_NotStartedYet = 6,
EHPMFilterType_ResourcesOverallocation = 7,
EHPMFilterType_ResourcesUnderallocation = 8,
EHPMFilterType_ResourcesGaps = 9,
EHPMFilterType_ResourcesWorkingNow = 10,
EHPMFilterType_ResourcesFreeNow = 11,
EHPMFilterType_OutOfOffice = 12,
EHPMFilterType_NotAssigned = 13,
EHPMFilterType_MilestoneOverdue = 14,
EHPMFilterType_AreMilestone = 15,
EHPMFilterType_AreMilestonePast = 16,
EHPMFilterType_AreMilestoneFuture = 17,
EHPMFilterType_AreSprints = 18,
EHPMFilterType_AreBacklogItems = 19,
EHPMFilterType_HaveAgileStatusNotDone = 20,
EHPMFilterType_HaveAgileStatusInProgress = 21,
EHPMFilterType_HaveAgileStatusCompleted = 22,
EHPMFilterType_HaveAgileStatusBlocked = 23,
EHPMFilterType_HaveAgileStatusDeleted = 24,
EHPMFilterType_VacationTasks = 25,
EHPMFilterType_UserStories = 26,
EHPMFilterType_AssignedToMe = 27,
EHPMFilterType_CanStartNow = 28,
EHPMFilterType_IsOngoingWork = 29,
EHPMFilterType_IsArchived = 30,
EHPMFilterType_IsDeleted = 31,
EHPMFilterType_IsLeaf = 32,
EHPMFilterType_AreBoards = 33,
EHPMFilterType_InCurrentSprint = 34,
};
Values
EHPMFilterType_NewVersionOfSDKRequired
The filter type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this filter type.
EHPMFilterType_None
No filter.
EHPMFilterType_Incompleted
Scheduled tasks with status 'Incomplete'
EHPMFilterType_Completed
Scheduled tasks with status 'Completed'.
EHPMFilterType_InProgress
Scheduled tasks with status 'In progress'.
EHPMFilterType_Overdue
Scheduled tasks with status 'Overdue'.
EHPMFilterType_NotStartedYet
Scheduled tasks with status 'Not started yet'.
EHPMFilterType_ResourcesOverallocation
Resource allocation zones that are over allocated.
EHPMFilterType_ResourcesUnderallocation
Resource allocation zones that are under allocated.
EHPMFilterType_ResourcesGaps
Resource allocation zones that have planning gaps.
EHPMFilterType_ResourcesWorkingNow
Resource allocation zones that are allocated now.
EHPMFilterType_ResourcesFreeNow
Resource allocation zones that are not allocated now.
EHPMFilterType_OutOfOffice
Resource allocation zones that are out of office.
EHPMFilterType_NotAssigned
Tasks/items that are not assigned.
EHPMFilterType_MilestoneOverdue
Tasks/items that are milestone overdue.
EHPMFilterType_AreMilestone
All milestones.
EHPMFilterType_AreMilestonePast
Past milestones.
EHPMFilterType_AreMilestoneFuture
Future milestones.
EHPMFilterType_AreSprints
All sprints.
EHPMFilterType_AreBacklogItems
All backlog items.
EHPMFilterType_HaveAgileStatusNotDone
Agile items with status 'Not done'.
EHPMFilterType_HaveAgileStatusInProgress
Agile items with status 'In progress'.
EHPMFilterType_HaveAgileStatusCompleted
Agile items with status 'Completed'.
EHPMFilterType_HaveAgileStatusBlocked
Agile items with status 'Blocked'.
EHPMFilterType_HaveAgileStatusDeleted
Agile items with status 'Deleted'.
EHPMFilterType_VacationTasks
Vacation tasks.
EHPMFilterType_UserStories
Items with status user stories.
EHPMFilterType_AssignedToMe
Bugs assigned to me.
EHPMFilterType_CanStartNow
Tasks that can start now.
EHPMFilterType_IsOngoingWork
Tasks that are ongoing.
EHPMFilterType_IsArchived
Tasks that are archived.
EHPMFilterType_IsDeleted
Tasks that are deleted.
EHPMFilterType_IsLeaf
Tasks that don't have children
EHPMFilterType_AreBoards
All boards.
EHPMFilterType_InCurrentSprint
Tasks that are in current sprint.
See Also
EHPMListIcon
Icons used in lists.
enum EHPMListIcon {
EHPMListIcon_NewVersionOfSDKRequired = 0,
EHPMListIcon_Default = 1,
EHPMListIcon_WhiteBox = 2,
EHPMListIcon_GreenBox = 3,
EHPMListIcon_YellowBox = 4,
EHPMListIcon_RedBox = 5,
EHPMListIcon_BlueBox = 6,
EHPMListIcon_MagentaBox = 7,
EHPMListIcon_OrangeBox = 8,
EHPMListIcon_Check = 9,
EHPMListIcon_RedDot = 10,
EHPMListIcon_BlueFace = 11,
EHPMListIcon_GreyFace = 12,
EHPMListIcon_OrangeFace = 13,
EHPMListIcon_GoldFace = 14,
EHPMListIcon_Locked = 15,
EHPMListIcon_Unlocked = 16,
EHPMListIcon_ReOpenBug = 17,
EHPMListIcon_NewBug = 18,
EHPMListIcon_AssignedBug = 19,
EHPMListIcon_FixedBug = 20,
EHPMListIcon_VerifiedBug = 21,
EHPMListIcon_ClosedBug = 22,
EHPMListIcon_Group = 23,
EHPMListIcon_GreyGroup = 24,
EHPMListIcon_LightGreyGroup = 25,
EHPMListIcon_GreenCircle = 26,
EHPMListIcon_YellowCircle = 27,
EHPMListIcon_RedCircle = 28,
EHPMListIcon_BlueCircle = 29,
EHPMListIcon_MagentaCircle = 30,
EHPMListIcon_OrangeCircle = 31,
EHPMListIcon_YesBox = 32,
EHPMListIcon_NoBox = 33,
EHPMListIcon_QuestionBox = 34,
EHPMListIcon_Project = 35,
EHPMListIcon_DeletedResource = 36,
EHPMListIcon_Workflow = 37,
EHPMListIcon_Progress = 38,
EHPMListIcon_Step = 39,
EHPMListIcon_Pipeline = 40,
EHPMListIcon_Report = 41,
EHPMListIcon_VeryHighPriorityBox = 42,
EHPMListIcon_HighPriorityBox = 43,
EHPMListIcon_MediumPriorityBox = 44,
EHPMListIcon_LowPriorityBox = 45,
EHPMListIcon_VeryLowPriorityBox = 46,
EHPMListIcon_DisabledBox = 47,
EHPMListIcon_Plus = 48,
EHPMListIcon_NoIcon = 49,
EHPMListIcon_WarningTriangleRed = 50,
EHPMListIcon_WarningTriangleYellow = 51,
EHPMListIcon_ExclamationMark = 52,
EHPMListIcon_Information = 53,
EHPMListIcon_Pause = 54,
EHPMListIcon_Stop = 55,
};
Values
EHPMListIcon_NewVersionOfSDKRequired
The bug status icon did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this status icon.
EHPMListIcon_Default
Default icon. Currently resolves to EHPMListIcon_RedDot.
EHPMListIcon_WhiteBox
White box icon.
EHPMListIcon_GreenBox
Green box icon.
EHPMListIcon_YellowBox
Yellow box icon.
EHPMListIcon_RedBox
Red box icon.
EHPMListIcon_BlueBox
Blue box icon.
EHPMListIcon_MagentaBox
Magenta box icon.
EHPMListIcon_OrangeBox
Orange box icon.
EHPMListIcon_Check
Check mark icon.
EHPMListIcon_RedDot
Red dot icon.
EHPMListIcon_BlueFace
Blue face icon.
EHPMListIcon_GreyFace
Grey face icon.
EHPMListIcon_OrangeFace
Orange face icon.
EHPMListIcon_GoldFace
Gold face icon.
EHPMListIcon_Locked
Locked icon.
EHPMListIcon_Unlocked
Unlocked icon.
EHPMListIcon_ReOpenBug
Re-open bug icon.
EHPMListIcon_NewBug
New bug icon.
EHPMListIcon_AssignedBug
Assigned bug icon.
EHPMListIcon_FixedBug
Fixed bug icon.
EHPMListIcon_VerifiedBug
Verified bug icon.
EHPMListIcon_ClosedBug
Closed bug icon.
EHPMListIcon_Group
Group icon.
EHPMListIcon_GreyGroup
Grey group icon.
EHPMListIcon_LightGreyGroup
Light grey icon.
EHPMListIcon_GreenCircle
Green circle icon.
EHPMListIcon_YellowCircle
Yellow circle icon.
EHPMListIcon_RedCircle
Red circle icon.
EHPMListIcon_BlueCircle
Blue circle icon.
EHPMListIcon_MagentaCircle
Magenta circle icon.
EHPMListIcon_OrangeCircle
Orange circle icon.
EHPMListIcon_YesBox
Yes box icon.
EHPMListIcon_NoBox
No box icon.
EHPMListIcon_QuestionBox
Question box icon.
EHPMListIcon_Project
Project icon.
EHPMListIcon_DeletedResource
Deleted resource icon.
EHPMListIcon_Workflow
Workflow icon.
EHPMListIcon_Progress
Progress icon.
EHPMListIcon_Step
Step icon.
EHPMListIcon_Pipeline
Pipeline icon.
EHPMListIcon_Report
Report icon.
EHPMListIcon_VeryHighPriorityBox
Very high priority box icon.
EHPMListIcon_HighPriorityBox
High priority box icon.
EHPMListIcon_MediumPriorityBox
Medium priority box icon.
EHPMListIcon_LowPriorityBox
Low priority box icon.
EHPMListIcon_VeryLowPriorityBox
Very low priority icon.
EHPMListIcon_DisabledBox
Disabled box icon.
EHPMListIcon_Plus
Plus icon.
EHPMListIcon_NoIcon
No icon.
EHPMListIcon_WarningTriangleRed
Red warning triangle icon.
EHPMListIcon_WarningTriangleYellow
Yellow warning triangle icon.
EHPMListIcon_ExclamationMark
Exclamation mark icon.
EHPMListIcon_Information
Information icon.
EHPMListIcon_Pause
Pause icon.
EHPMListIcon_Stop
Stop icon.
See Also
HPMReport, HPMProjectWorkflowObject, HPMProjectWorkflowProperties, HPMProjectCustomColumnsColumnDropListItem
EHPMReportSortGroupOrderType
Sort group order used for HPMReportSortGroupProperties::m_OrderType
enum EHPMReportSortGroupOrderType {
EHPMReportSortGroupOrderType_NewVersionOfSDKRequired = 0,
EHPMReportSortGroupOrderType_None = 1,
EHPMReportSortGroupOrderType_Primary = 2,
EHPMReportSortGroupOrderType_Secondary = 3,
};
Values
EHPMReportSortGroupOrderType_NewVersionOfSDKRequired
The sort/group order type did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this type.
EHPMReportSortGroupOrderType_None
Use if HPMReportSortGroupProperties has no sort group/criteria.
EHPMReportSortGroupOrderType_Primary
Use if HPMReportSortGroupProperties is the primary sort/group criteria.
EHPMReportSortGroupOrderType_Secondary
Use if HPMReportSortGroupProperties is the secondary sort/group criteria.
See Also
EHPMTimesheetField
The timesheet field type.
enum EHPMTimesheetField {
EHPMTimesheetField_NewVersionOfSDKRequired = 0,
EHPMTimesheetField_DayID = 1,
EHPMTimesheetField_HighestRowID = 2,
EHPMTimesheetField_ActivityTypeID = 3,
EHPMTimesheetField_ProjectID = 4,
EHPMTimesheetField_TaskID = 5,
EHPMTimesheetField_StartedTime = 6,
EHPMTimesheetField_FinishedTime = 7,
EHPMTimesheetField_DurationTime = 8,
EHPMTimesheetField_Comment = 9,
EHPMTimesheetField_Deleted = 10,
};
Values
EHPMTimesheetField_NewVersionOfSDKRequired
The field did not exist when this SDK was created. Upgrade to a newer version of the SDK to be able to use this type.
EHPMTimesheetField_DayID
Day id field.
EHPMTimesheetField_HighestRowID
Highest row id field.
EHPMTimesheetField_ActivityTypeID
Activity type id field.
EHPMTimesheetField_ProjectID
Project id field.
EHPMTimesheetField_TaskID
Task id field.
EHPMTimesheetField_StartedTime
Started time field.
EHPMTimesheetField_FinishedTime
Finished time field.
EHPMTimesheetField_DurationTime
Duration time field.
EHPMTimesheetField_Comment
Comment field.
EHPMTimesheetField_Deleted
Is deleted field.
See Also
HPMChangeCallbackData_TimesheetRowChange
EHPMOptionalBoolean
Used to specify optional parameters.
enum EHPMOptionalBoolean {
EHPMOptionalBoolean_NotSet = 0,
EHPMOptionalBoolean_On = 1,
EHPMOptionalBoolean_Off = 2,
};
Values
EHPMOptionalBoolean_NotSet
The value is not set.
EHPMOptionalBoolean_On
The value is true/on/set.
EHPMOptionalBoolean_Off
The value is false/off/not set.
HPMUntranslatedString
Used to define an untranslated string.
struct HPMUntranslatedString {
HPMInt32 m_Dummy;
} HPMUntranslatedString;
Members
m_Dummy
Dummy variable. Not used
HPMBinaryBuffer
Stores binary data.
struct HPMBinaryBuffer {
HPMUInt32 m_nBytes;
const HPMUInt8 * m_pBytes;
} HPMBinaryBuffer;
Members
m_nBytes
The number of bytes of data.
m_pBytes
The binary data.
See Also
CommunicationChannelRegister, CommunicationChannelEnum
HPMResourceDefinition
Used to define lists of resources.
struct HPMResourceDefinition {
HPMInt32 m_GroupingType;
HPMUniqueID m_ID;
} HPMResourceDefinition;
Members
m_GroupingType
The grouping type. Can be one of EHPMResourceGroupingType.
m_ID
The unique identifier of the resource or resource group.
See Also
HPMResourceDefinitionList
Used to specify a list of resources.
struct HPMResourceDefinitionList {
HPMUInt32 m_nResources;
const HPMResourceDefinition * m_pResources;
} HPMResourceDefinitionList;
Members
m_nResources
The number of resources defined.
m_pResources
Pointer to a list of resources to define. See HPMResourceDefinition.
See Also
HPMWorkPass
Defines a work pass.
struct HPMWorkPass {
HPMUInt32 m_Start;
HPMUInt32 m_End;
} HPMWorkPass;
Members
m_Start
The start of the pass.
m_End
The end of the pass.
Comments
Times are defined as 1 + Half hours since midnight. To disable the pass set both start and end to 0.
See Also
HPMWorkDay, HPMCustomWorkHoursDay
HPMWorkDay
Defines a work Day.
struct HPMWorkDay {
HPMWorkPass m_WorkPasses[3];
} HPMWorkDay;
Members
m_WorkPasses
You can set up to three work passes for a day. See HPMWorkPass for details on work passes.
Comments
A work day is defined as three work passes.
See Also
HPMWorkPass, HPMTaskVacationOptions, HPMWorkingHours
HPMWorkingDays
Working days used in in ProjectCalendarGetWorkingDays, ProjectCalendarSetWorkingDays
struct HPMWorkingDays {
HPMInt32 m_bWorkDay[7];
} HPMWorkingDays;
Members
m_bWorkDay
The working week. m_bWorkDay[0] is Monday. A day is a working day if set to 1, a non working day if set to 0.
See Also
ProjectCalendarGetWorkingDays, ProjectCalendarSetWorkingDays
HPMCustomWorkDay
Work day status for a specific date.
struct HPMCustomWorkDay {
HPMUInt64 m_Date;
HPMInt32 m_bWorkDay;
} HPMCustomWorkDay;
Members
m_Date
The specific date for the working day status. Expressed as the number of micro seconds since 1970 UTC.
m_bWorkDay
Set to 1 if this day is a working day, 0 otherwise.
See Also
HPMCustomWorkingDays
Changed working days used in in ProjectCalendarGetCustomWorkingDays, ProjectCalendarSetCustomWorkingDays
struct HPMCustomWorkingDays {
HPMUInt32 m_nChangedDays;
const HPMCustomWorkDay * m_pChangedDays;
} HPMCustomWorkingDays;
Members
m_nChangedDays
The number of days to specify changed working day status for.
m_pChangedDays
Pointer to a list of HPMCustomWorkDay to specify changed working day status for.
See Also
ProjectCalendarGetCustomWorkingDays, ProjectCalendarSetCustomWorkingDays
HPMCustomWorkHoursDay
Changed working hours for a specific date.
struct HPMCustomWorkHoursDay {
HPMUInt64 m_Date;
HPMWorkPass m_WorkPasses[3];
} HPMCustomWorkHoursDay;
Members
m_Date
The specific date for the working hours. Expressed as the number of micro seconds since 1970 UTC.
m_WorkPasses
You can set up to three work passes for a day. See HPMWorkPass for details on work passes.
See Also
HPMCustomWorkingHours
Specific days to set working hours for used in ProjectCalendarGetCustomWorkingHours, ProjectCalendarSetCustomWorkingHours
struct HPMCustomWorkingHours {
HPMUInt32 m_nChangedDays;
const HPMCustomWorkHoursDay * m_pChangedDays;
} HPMCustomWorkingHours;
Members
m_nChangedDays
The number of days with changed working hours.
m_pChangedDays
Pointer to a list of HPMCustomWorkHoursDay to specify changed working hours for.
See Also
ProjectCalendarGetCustomWorkingHours, ProjectCalendarSetCustomWorkingHours
HPMWorkingHours
Working days used in ProjectCalendarGetWorkingDays, ProjectCalendarSetWorkingDays
struct HPMWorkingHours {
HPMWorkDay m_WorkDays[7];
} HPMWorkingHours;
Members
m_WorkDays
Used to specify work passes for the days of the week. See HPMWorkDay.
See Also
ProjectCalendarGetWorkingDays, ProjectCalendarSetWorkingDays
HPMHoliday
Holiday definition.
struct HPMHoliday {
HPMUInt64 m_Date;
const HPMUntranslatedString * m_pName;
} HPMHoliday;
Members
m_Date
The date to set a holiday for. Expressed as the number of micro seconds since 1970 UTC.
m_pName
The name of the holiday.
See Also
HPMHolidayYear
Year that has number of holidays defined.
struct HPMHolidayYear {
HPMInt32 m_Year;
HPMUInt32 m_nDays;
const HPMHoliday * m_pDays;
} HPMHolidayYear;
Members
m_Year
The year to set holidays for.
m_nDays
The number of holidays.
m_pDays
Pointer to a list of HPMHoliday to set as holidays.
See Also
HPMHolidays
Holidays used in ProjectCalendarGetHolidays, ProjectCalendarSetHolidays
struct HPMHolidays {
const HPMUntranslatedString * m_pCountry;
HPMUInt32 m_nYears;
const HPMHolidayYear * m_pYears;
} HPMHolidays;
Members
m_pCountry
The name of the country where the holidays are celebrated.
m_nYears
The number of years that holidays are defined for.
m_pYears
Pointer to a list of HPMHolidayYear to holidays for.
See Also
ProjectCalendarGetHolidays, ProjectCalendarSetHolidays
HPMCalendarDayInfo
Calendar information used in ProjectGetCalendarDayInfo
struct HPMCalendarDayInfo {
HPMInt32 m_bWorkingDay;
HPMInt32 m_bHoliday;
HPMInt32 m_bCompensatedHoliday;
HPMInt32 m_WorkingHours;
HPMInt32 m_bOriginatesFromVacationTask;
} HPMCalendarDayInfo;
Members
m_bWorkingDay
Set to 1 if day is a working day, 0 otherwise.
m_bHoliday
Set to 1 if day is a holiday, 0 otherwise.
m_bCompensatedHoliday
Set to 1 if day is a compensated, 0 otherwise.
m_WorkingHours
The number of working hours, expressed as half hours.
m_bOriginatesFromVacationTask
If a vacation task has affected the calendar in any way for this day this will be set to 1, 0 otherwise.
See Also
HPMMD5Checksum
Defines a MD5 checksum.
struct HPMMD5Checksum {
HPMUInt8 m_Checksum[16];
} HPMMD5Checksum;
Members
m_Checksum
The MD5 checksum data
See Also
HPMCustomSettingValue
Defines the value of a custom setting.
struct HPMCustomSettingValue {
HPMInt32 m_bIsDefault;
HPMInt32 m_bSecretValue;
const HPMChar * m_pValue;
} HPMCustomSettingValue;
Members
m_bIsDefault
Set to true when the requested value is the default value. If set to false when setting a value, the value is removed.
m_bSecretValue
If set the value will only be sent to the server and other SDK clients, not to normal clients. Not valid when getting values.
m_pValue
The value of the custom setting to get or set.
See Also
GlobalGetCustomSettingsValue, GlobalSetCustomSettingsValue ResourceGetCustomSettingsValue, ResourceSetCustomSettingsValue ProjectGetCustomSettingsValue, ProjectSetCustomSettingsValue ProjectResourceGetCustomSettingsValue, ProjectResourceSetCustomSettingsValue
HPMSDKInternalData
Defines SDK internal data.
struct HPMSDKInternalData {
HPMInt32 m_bSecret;
HPMUInt32 m_nData;
const HPMUInt8 * m_pData;
} HPMSDKInternalData;
Members
m_bSecret
If set the data will only be sent to the server and other SDK clients, not to normal clients. Not valid when getting data.
m_nData
The number of bytes of data defined.
m_pData
The data defined.
See Also
GlobalGetSDKInternalData, GlobalSetSDKInternalData ResourceGetSDKInternalData, ResourceSetSDKInternalData ProjectGetSDKInternalData, ProjectSetSDKInternalData ProjectResourceGetSDKInternalData, ProjectResourceSetSDKInternalData, TaskGetSDKInternalData, TaskSetSDKInternalData TaskGetCommentSDKInternalData, TaskSetCommentSDKInternalData TaskRefGetSDKInternalData, TaskRefSetSDKInternalData
HPMCustomStatisticsField
Used to define a statistics field.
struct HPMCustomStatisticsField {
HPMInt32 m_FieldID;
HPMUInt32 m_FieldData;
} HPMCustomStatisticsField;