Unable to delete folder OOM .NET add - ins

R

reda246

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko raðë:
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file, then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name + ".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP + outlookNS.CurrentUser.Name +
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP + outlookNS.CurrentUser.Name +
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry key for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish calendaron
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling RemoveStore
and
before deleting the PST file to let the Windows message loop run.

Just out of curiosity, why do you create a PST file if you wantto
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is *.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I set up
that
registry key, I added new PST store using Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released during
Outlook Session.
Also, I would like to mention that *.PST files store on Network
folder.

Sorry for my dummy question, maybe that problem is that Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registry key,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a locked
file
during the Outlook session. I can't completely to delete *.pst
folder.
I know that I have to use <Folder>.Delete() method, but I
can't.
I've
heard about Extended MAPI, but I am not really familiar with C
or
C++,
do you have any papers or articles or solutions examples for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced and
loaded
for
30
minutes. Or until the PST provider dll itself gets unloaded
(e.g.
when
the
host process terminates). You might want to play with the
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Hello,

I am new in Office programming. Sorry if I will repeat
with
my
question,
but
after long searches, I couldn't find a solution to my
problem.
Problem: I am developing shared add - ins for MS Outlook
2003,
my
application will create *.pst file with calendar folder
and
that
*.pst
file
will publish on server (Not Exchange server). But afteri
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 
D

Dmitry Streblechenko

Ok, but when does it work?.
You wrote "Alex.pst does not work", but "But I adding Reda.pst file,
everything works fine"
What exactly is the difference between these two scenarios?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko raðë:
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file, then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name +
".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP + outlookNS.CurrentUser.Name +
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP + outlookNS.CurrentUser.Name
+
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry key
for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish calendar
on
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling
RemoveStore
and
before deleting the PST file to let the Windows message loop
run.

Just out of curiosity, why do you create a PST file if you want
to
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is *.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I set up
that
registry key, I added new PST store using Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released
during
Outlook Session.
Also, I would like to mention that *.PST files store on
Network
folder.

Sorry for my dummy question, maybe that problem is that
Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registry key,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a
locked
file
during the Outlook session. I can't completely to delete
*.pst
folder.
I know that I have to use <Folder>.Delete() method, but I
can't.
I've
heard about Extended MAPI, but I am not really familiar with
C
or
C++,
do you have any papers or articles or solutions examples for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced and
loaded
for
30
minutes. Or until the PST provider dll itself gets
unloaded
(e.g.
when
the
host process terminates). You might want to play with the
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

message
Hello,

I am new in Office programming. Sorry if I will repeat
with
my
question,
but
after long searches, I couldn't find a solution to my
problem.
Problem: I am developing shared add - ins for MS
Outlook
2003,
my
application will create *.pst file with calendar folder
and
that
*.pst
file
will publish on server (Not Exchange server). But after
i
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't
solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 
R

reda246

It works fine when Publish my *.pst file to server, but when I would
to add some other user *.pst, it doesn't work fine.
Dmitry Streblechenko raðë:
Ok, but when does it work?.
You wrote "Alex.pst does not work", but "But I adding Reda.pst file,
everything works fine"
What exactly is the difference between these two scenarios?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko ra :
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file, then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name +
".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP + outlookNS.CurrentUser.Name+
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP + outlookNS.CurrentUser.Name
+
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry key
for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish calendar
on
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling
RemoveStore
and
before deleting the PST file to let the Windows message loop
run.

Just out of curiosity, why do you create a PST file if you want
to
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is *.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I setup
that
registry key, I added new PST store using Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released
during
Outlook Session.
Also, I would like to mention that *.PST files store on
Network
folder.

Sorry for my dummy question, maybe that problem is that
Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registry key,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a
locked
file
during the Outlook session. I can't completely to delete
*.pst
folder.
I know that I have to use <Folder>.Delete() method, but I
can't.
I've
heard about Extended MAPI, but I am not really familiar with
C
or
C++,
do you have any papers or articles or solutions examples for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced and
loaded
for
30
minutes. Or until the PST provider dll itself gets
unloaded
(e.g.
when
the
host process terminates). You might want to play with the
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

message
Hello,

I am new in Office programming. Sorry if I will repeat
with
my
question,
but
after long searches, I couldn't find a solution to my
problem.
Problem: I am developing shared add - ins for MS
Outlook
2003,
my
application will create *.pst file with calendar folder
and
that
*.pst
file
will publish on server (Not Exchange server). But after
i
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't
solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 
R

reda246

I just solved my problem, well I found a workaround. I know it is not
a best choice, but it works. First all, set a rootfolder, in my case
is "Personal Folders". As I said before when I tried to display some
others calendar, it always sets on "Inbox". Maybe it is a bug.

Reda

(e-mail address removed) raðë:
It works fine when Publish my *.pst file to server, but when I would
to add some other user *.pst, it doesn't work fine.
Dmitry Streblechenko ra :
Ok, but when does it work?.
You wrote "Alex.pst does not work", but "But I adding Reda.pst file,
everything works fine"
What exactly is the difference between these two scenarios?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko ra :
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file, then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name +
".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP + outlookNS.CurrentUser.Name +
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP + outlookNS.CurrentUser..Name
+
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry key
for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish calendar
on
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling
RemoveStore
and
before deleting the PST file to let the Windows message loop
run.

Just out of curiosity, why do you create a PST file if you want
to
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is *.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I set up
that
registry key, I added new PST store using Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released
during
Outlook Session.
Also, I would like to mention that *.PST files store on
Network
folder.

Sorry for my dummy question, maybe that problem is that
Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registrykey,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a
locked
file
during the Outlook session. I can't completely to delete
*.pst
folder.
I know that I have to use <Folder>.Delete() method, butI
can't.
I've
heard about Extended MAPI, but I am not really familiarwith
C
or
C++,
do you have any papers or articles or solutions examples for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced and
loaded
for
30
minutes. Or until the PST provider dll itself gets
unloaded
(e.g.
when
the
host process terminates). You might want to play withthe
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

message
Hello,

I am new in Office programming. Sorry if I will repeat
with
my
question,
but
after long searches, I couldn't find a solution to my
problem.
Problem: I am developing shared add - ins for MS
Outlook
2003,
my
application will create *.pst file with calendar folder
and
that
*.pst
file
will publish on server (Not Exchange server). But after
i
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't
solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 
D

Dmitry Streblechenko

I am not sure I understand the difference: what do you mean by "Publish my
*.pst file to server"?
You call AddStore in both cases, right?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It works fine when Publish my *.pst file to server, but when I would
to add some other user *.pst, it doesn't work fine.
Dmitry Streblechenko raðë:
Ok, but when does it work?.
You wrote "Alex.pst does not work", but "But I adding Reda.pst file,
everything works fine"
What exactly is the difference between these two scenarios?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko ra :
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file, then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like
this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So
my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name +
".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP + outlookNS.CurrentUser.Name
+
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP +
outlookNS.CurrentUser.Name
+
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry key
for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I
get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish
calendar
on
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file
to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of
Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling
RemoveStore
and
before deleting the PST file to let the Windows message loop
run.

Just out of curiosity, why do you create a PST file if you
want
to
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is *.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I set
up
that
registry key, I added new PST store using
Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released
during
Outlook Session.
Also, I would like to mention that *.PST files store on
Network
folder.

Sorry for my dummy question, maybe that problem is that
Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registry
key,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a
locked
file
during the Outlook session. I can't completely to delete
*.pst
folder.
I know that I have to use <Folder>.Delete() method, but I
can't.
I've
heard about Extended MAPI, but I am not really familiar
with
C
or
C++,
do you have any papers or articles or solutions examples
for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced and
loaded
for
30
minutes. Or until the PST provider dll itself gets
unloaded
(e.g.
when
the
host process terminates). You might want to play with
the
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

message
Hello,

I am new in Office programming. Sorry if I will repeat
with
my
question,
but
after long searches, I couldn't find a solution to my
problem.
Problem: I am developing shared add - ins for MS
Outlook
2003,
my
application will create *.pst file with calendar
folder
and
that
*.pst
file
will publish on server (Not Exchange server). But
after
i
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't
solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 
R

reda246

Yes, in both case I call AddStore().
"Publish my *.pst file to server" means that put to Server my *.pst
file (inside only Calendar folder) for share purpose.


Dmitry Streblechenko raðë:
I am not sure I understand the difference: what do you mean by "Publish my
*.pst file to server"?
You call AddStore in both cases, right?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It works fine when Publish my *.pst file to server, but when I would
to add some other user *.pst, it doesn't work fine.
Dmitry Streblechenko ra :
Ok, but when does it work?.
You wrote "Alex.pst does not work", but "But I adding Reda.pst file,
everything works fine"
What exactly is the difference between these two scenarios?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko ra :
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file, then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like
this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So
my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name +
".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP + outlookNS.CurrentUser.Name
+
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP +
outlookNS.CurrentUser.Name
+
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry key
for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I
get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish
calendar
on
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file
to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of
Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling
RemoveStore
and
before deleting the PST file to let the Windows message loop
run.

Just out of curiosity, why do you create a PST file if you
want
to
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is *.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I set
up
that
registry key, I added new PST store using
Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released
during
Outlook Session.
Also, I would like to mention that *.PST files store on
Network
folder.

Sorry for my dummy question, maybe that problem is that
Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registry
key,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a
locked
file
during the Outlook session. I can't completely to delete
*.pst
folder.
I know that I have to use <Folder>.Delete() method, butI
can't.
I've
heard about Extended MAPI, but I am not really familiar
with
C
or
C++,
do you have any papers or articles or solutions examples
for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced and
loaded
for
30
minutes. Or until the PST provider dll itself gets
unloaded
(e.g.
when
the
host process terminates). You might want to play with
the
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

message
Hello,

I am new in Office programming. Sorry if I will repeat
with
my
question,
but
after long searches, I couldn't find a solution to my
problem.
Problem: I am developing shared add - ins for MS
Outlook
2003,
my
application will create *.pst file with calendar
folder
and
that
*.pst
file
will publish on server (Not Exchange server). But
after
i
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't
solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 
D

Dmitry Streblechenko

I don't know, I have never seen that happen.
Coudl have something to do with the fact that you do this in the
FolderSwitch event.
What if you use BeforeFolderSwitch event instead and set tehe Cancel
parameter to true?
What if you run that code someplace else other than the FolderSwitch event
handler?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, in both case I call AddStore().
"Publish my *.pst file to server" means that put to Server my *.pst
file (inside only Calendar folder) for share purpose.


Dmitry Streblechenko raðë:
I am not sure I understand the difference: what do you mean by "Publish my
*.pst file to server"?
You call AddStore in both cases, right?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It works fine when Publish my *.pst file to server, but when I would
to add some other user *.pst, it doesn't work fine.
Dmitry Streblechenko ra :
Ok, but when does it work?.
You wrote "Alex.pst does not work", but "But I adding Reda.pst file,
everything works fine"
What exactly is the difference between these two scenarios?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

It always displays "Inbox" folder.

Ok, I have add FolderSwitch() event on OnStartupComplete(ref
System.Array custom), displays User Calendar, but CurrentFolder is
"Inbox" folder.

Here is a code for FolderSwitch() event:

void explorer_FolderSwitch()
{
NameSpace outlookNS = applicationObject.GetNamespace("MAPI");
MAPIFolder objFolder;
explorer = this.applicationObject.ActiveExplorer();
objFolder = outlookNS.Folders[CmbUser.Text + " Calendars"];
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
explorer.CurrentFolder =
objFolder.Folders[CmbUser.Text];
explorer.Display();
}
}
}

Maybe I am doing something wrong?
Thanks

Reda
Dmitry Streblechenko ra :
What happens if you call folder.Display() instead?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool


Here is a code:

private void IkeltiUserKalendoriu(PathUP)
{
MAPIFolder objFolder;
if (CmbUser.Text.Length > 0)
{
objFolder = SetStore(PathUP, CmbUser.Text + " Calendars");
foreach(MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == CmbUser.Text)
{
applicationObject.ActiveExplorer().CurrentFolder =
folder;
applicationObject.ActiveExplorer().Display();
}
}
}
else
{ MessageBox.Show("Error: Choice a user" , "Message"); }

objFolder = null;
}

Thanks again for suggestions.

Reda

Dmitry Streblechenko ra :
I am not sure I understand what you mean.
Where does calendarfolder come from? What is your code?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I found it that I can't set folder list the way as I was added to
Folder list.
Right now the problem is to display Calendar folder, for example in
Folder "Alex Calendars". My scenario is:
I am adding programmically to folder list, let say Alex.pst file,
then
I do this.ActiveExplorer().Currentfolder = calendarfolder;
this.ActiveExplorer().Display(); but Alex "Calendar" won't Display.
Instead of this CurrentView set on "Inbox".
But I adding Reda.pst file, everything works fine.
I guess the problem is because Alex Calendars folder is not last on
treeview.

Thanks for suggestions.

Reda

(e-mail address removed) ra :
Thanks, Dmitry, I have solved my problem by deleting particular
folder. But here is another problem came up:
I would like to add *pst file on the end of folder treeview like
this:
+--Personal Folders
+---Hotmail
+--Alex Calendars
+--Reda Calendars

I am getting this:

+--Personal Folders
+--Alex Calendars
+---Hotmail
+--Reda Calendars

It seems that Outlook sorts in alphabetical order, Is it a way to
change it?

Thanks alot again,
Reda

Dmitry Streblechenko ra :
I meant "Why", not "What".

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

I delete the whole PST file file first, then I do AddStore(). So
my
personal profile will renew. Am I doing something wrong.

Thanks alot.

Here is a piece of code:
...
NameSpace outlookNS =
applicationObject.GetNamespace("MAPI");
Explorer exp = applicationObject.ActiveExplorer();
MAPIFolder rootFolder = outlookNS.Folders[1];
MAPIFolder objFolder = outlookNS.Folders.GetLast();
string path = PathP + outlookNS.CurrentUser.Name +
".pst";
if (System.IO.File.Exists(path))
{
System.IO.File.Delete(path);
}
objFolder = null;
outlookNS.AddStore(PathP +
outlookNS.CurrentUser.Name
+
".pst");
objFolder = outlookNS.Folders.GetLast();
objFolder.Name = outlookNS.CurrentUser.Name + "
Calendars";
calendarFolder.CopyTo(objFolder);
foreach (MAPIFolder folder in objFolder.Folders)
{
if (folder.Name == "Calendar")
{
folder.Name = outlookNS.CurrentUser.Name + "";
break;
}
}
outlookNS.RemoveStore(objFolder);
MessageBox.Show("Publish date: " +
System.IO.File.GetLastWriteTime(PathP +
outlookNS.CurrentUser.Name
+
".pst"),"Message");
outlookNS = null;
objFolder = null;
exp = null;

....

Reda

Dmitry Streblechenko ras :
What do you delete the whole PST file rather than its
contents?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thank you all for suggestions. I set up manually a registry
key
for
Outlook 2003("11.0"), as it said in this article.
It seems that *.pst file is released, but another bug cames up
"Outlook failed to add personal store file to this session". I
get
this error then call method AddStore again.

My scenario is: I have app, where I have button "Publish
calendar
on
network", so when I click on this button, I check is
<CurrentUser>.pst
exists. If exists, I delete that file, after that I call
method
namespace.AddStore(path).
Here I got an error. Outlook failed to add personal store file
to
this
session".

Any suggestions?

Thank you again.

Reda


Dmitry Streblechenko ras :
What is your code?
Did you create the right registry key? The article talks
about
Outlook
2000,
that is what "9.0" in the key name refers to. In case of
Outlook
2002,
it
should be "10.0", Outlook 2003 - "11.0", etc.
Try to display a message box immediatley after calling
RemoveStore
and
before deleting the PST file to let the Windows message loop
run.

Just out of curiosity, why do you create a PST file if you
want
to
delete
it?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Yes, PST store folder has been removed, but a problem is
*.pst
file
hasn't been released durring Outlook session.
This is a problem.

Thank you,

Reda

Dmitry Streblechenko ras :
Do you see that PST store removed from Outlook when you
call
RemoveStore?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Well, maybe a problem is with releasing a *.pst file. I
set
up
that
registry key, I added new PST store using
Namespace.AddStore,
then
call Namespace.RemoveStore. but PST file didn't released
during
Outlook Session.
Also, I would like to mention that *.PST files store on
Network
folder.

Sorry for my dummy question, maybe that problem is that
Outlook
session is running?

How to solve this problem without exiting Outlook?

Thanks so much.

Reda


Dmitry Streblechenko ras :
I don't see what the problem is - you set that registry
key,
add
a
new
PST
store using Namespace.AddStore, then call
Namespace.RemoveStore.
The
PST
file should be released. Is that not the case?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Thanks so much for quick response, but the problem is a
locked
file
during the Outlook session. I can't completely to delete
*.pst
folder.
I know that I have to use <Folder>.Delete() method, but
I
can't.
I've
heard about Extended MAPI, but I am not really familiar
with
C
or
C++,
do you have any papers or articles or solutions examples
for
this
problem.
Thank you so much.

Reda

Dmitry Streblechenko ras :
By default, PST provider keeps a PST file referenced
and
loaded
for
30
minutes. Or until the PST provider dll itself gets
unloaded
(e.g.
when
the
host process terminates). You might want to play with
the
registry
key
mentioned in
http://support.microsoft.com/Default.aspx?kbid=222328


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

message
Hello,

I am new in Office programming. Sorry if I will
repeat
with
my
question,
but
after long searches, I couldn't find a solution to
my
problem.
Problem: I am developing shared add - ins for MS
Outlook
2003,
my
application will create *.pst file with calendar
folder
and
that
*.pst
file
will publish on server (Not Exchange server). But
after
i
publish
*.pst
file
on server user B, cannot view this file, because is
locked.
I
used
RemoveStore method to remove a folder, but it didn't
solve
my
problem.
How can I solve my problem?

Thank you so much
Reda

PS. I don't like any commercial 3rd parties tools.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top