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ðë:
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.