summaryrefslogtreecommitdiff
path: root/mailnews/mapi/include/mspst.h
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/mapi/include/mspst.h')
-rw-r--r--mailnews/mapi/include/mspst.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/mailnews/mapi/include/mspst.h b/mailnews/mapi/include/mspst.h
new file mode 100644
index 000000000..d063e25c5
--- /dev/null
+++ b/mailnews/mapi/include/mspst.h
@@ -0,0 +1,99 @@
+/*
+ * M S P S T . H
+ *
+ * This file lists internal properties of the Microsoft Personal
+ * Information Store
+ *
+ * Copyright (c) 2009 Microsoft Corporation. All Rights Reserved.
+ */
+
+#ifndef _MSPST_H_
+#define _MSPST_H_
+
+#if _MSC_VER > 1000
+#pragma once
+#endif
+
+
+/* The following is a list of properties that may be passed in
+ as the properties in the array of SPropValue structure on the
+ MsgServiceConfigure function.
+
+ Creating a PST profile section through CreateMsgService.
+ The creation of the actual PST file is a two step process. First the
+ client should call CreateMsgService to setup the profile section and then
+ ConfigureMsgService to create the PST file.
+ The CreateMsgService call will setup the PR_DISPLAY_NAME property in the
+ profile section to be used on the PST when it is created.
+
+ Configuring an PST file through ConfigureMsgService.
+ The configuration of an PST can take two forms, either configuring an
+ existing PST or creating a new PST. The Microsoft Personal Information
+ Store provider will try to find the necessary properties by first looking
+ in the array of SPropValue structures provided by the client and then in the
+ profile section, except for PR_PST_PW_SZ_OLD for which it will only look
+ in the array of properties.
+
+ The Microsoft PST provider will try to open the file specified by the
+ PR_PST_PATH property, using the password given in the PR_PST_PW_SZ_OLD
+ property. If it finds a file and it recognizes it as a PST
+ file, it will start the configuration routine. Otherwise it will start the
+ creation routine.
+
+ The configuration routine will look for the PR_DISPLAY_NAME_A and
+ PR_COMMENT_A properties and set them in the message store object. Then it
+ will look for the PR_PST_REMEMBER_PW property to decide if it should
+ remember the password in the profile. (If not found then it will defaut to
+ the current status of the profile password.) Then if it is supposed to
+ use UI, it will display the configuration property sheet to the user. After
+ all has succeeded, it will update the profile.
+
+ The creation routine will follow one of two paths to get the PR_PST_PATH
+ property. If it is supposed to use UI it will always display the file open
+ dialog to confirm the path passed in or allow the user to change it. If
+ the user chooses an existing file and it recognizes it as an PST it will
+ drop back to the configuration routine. If the user chooses an existing
+ file and it is not recognized as an PST file, the user will be given the
+ option of choosing another file or creating a new PST in its place, in
+ which case is will continue with the create routine. If the user chooses
+ a new file it will continue with the create routine. If the routine is not
+ allowed to use UI, then the routine will create a file at the given path
+ even if another file exists there.
+
+ Once it decides to continue with the creation process it will get the
+ PR_DISPLAY_NAME, PR_COMMENT, PR_PST_ENCRYPTION, and PR_PST_SZ_PW_NEW
+ properties. If it is supposed to use UI, it will use these to initialize
+ the creation dialog and get any changes the user want. Then it will create
+ a new file and update the profile.
+
+ PR_DISPLAY_NAME_A display name for the PST service
+ PR_COMMENT_A comment to the place on the PST store object
+ PR_PST_PATH location the store to create or configure
+ PR_PST_REMEMBER_PW whether or not the remember the password in the profile
+ PR_PST_ENCRYPTION encryption level at which to create the file
+ PR_PST_PW_SZ_OLD password of the PST being configured
+ PR_PST_PW_SZ_NEW password to use for future access to the PST
+*/
+
+#define PST_EXTERN_PROPID_BASE (0x6700)
+#define PR_PST_PATH PROP_TAG(PT_STRING8, PST_EXTERN_PROPID_BASE + 0)
+#define PR_PST_REMEMBER_PW PROP_TAG(PT_BOOLEAN, PST_EXTERN_PROPID_BASE + 1)
+#define PR_PST_ENCRYPTION PROP_TAG(PT_LONG, PST_EXTERN_PROPID_BASE + 2)
+#define PR_PST_PW_SZ_OLD PROP_TAG(PT_STRING8, PST_EXTERN_PROPID_BASE + 3)
+#define PR_PST_PW_SZ_NEW PROP_TAG(PT_STRING8, PST_EXTERN_PROPID_BASE + 4)
+
+#define PSTF_NO_ENCRYPTION ((DWORD)0x80000000)
+#define PSTF_COMPRESSABLE_ENCRYPTION ((DWORD)0x40000000)
+#define PSTF_BEST_ENCRYPTION ((DWORD)0x20000000)
+
+/*
+ * PR_MDB_PROVIDER is the GUID that represent the Microsoft Personal
+ * Information Store. This guid is available as a property in the stores
+ * table and on the message store and status objects.
+ */
+#define MSPST_UID_PROVIDER { 0x4e, 0x49, 0x54, 0x41, \
+ 0xf9, 0xbf, 0xb8, 0x01, \
+ 0x00, 0xaa, 0x00, 0x37, \
+ 0xd9, 0x6e, 0x00, 0x00 }
+
+#endif /* _MSPST_H_ */