101 lines
4.9 KiB
C
101 lines
4.9 KiB
C
|
/*
|
|||
|
* M S P S T . H
|
|||
|
*
|
|||
|
* This file lists internal properties of the Microsoft Personal
|
|||
|
* Information Store
|
|||
|
*
|
|||
|
* Copyright 1986-1999 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_ */
|
|||
|
|