I'll pass...PST=BAD
-Original Message-
From: Govardhan Nandi [mailto:[EMAIL PROTECTED]]
Sent: Saturday, November 10, 2001 4:23 AM
To: Exchange Discussions
Subject: Assigning inbox to Rules Object for few exchange
users gives MAPI _E_INVALID_ENTRYID
Importance: High
Dear friends,
We have developed a web application which allows our
Company's Exchange 5.5 users to manage(add/edit/delete)thier
rules for thier inbox (similar to outllok rule wizard)from
a web interface.
We are using Rule.dll found in Exchange 5.5 Platform SDK
to create the rules from ASP pages hosted on a IIS.
Code runs properly for some users but fails for some other users.
3 Steps to Reproduce the Behaviour
1Set delivery to Personal folders through the services options in
1Tools
option of Outlook
This create the Inbox folder in your Personal folder
which becomes a
specialfolder you can never delete the folder even
if u want.
Now if you want , you can reset the delivery back to
Mailbox or keep it pointing to personal folders
itslef..This wont affect the remaining steps behaviour (Now
for outlook 97 clients...u can directly run the code in step
3 to get the desired error but for outlook 2000 ..u need to
follow step 2 also)
2Now using Outlook rule wizard ,create a client side rule for the
2inbox(e.g
move messages from inbox to some personal folder) turn on the rule
3Now run any of the following two sets of code
--
Set objInbox = objCDOSession.Inbox
set colRules = server.CreateObject(MSExchange.Rules)
colRules.Folder = objInbox
---OR---
Set objInfoStore = objCDOSession.InfoStores (2)
Set objPrivateFs = objInfoStore.RootFolder.Folders
For Each objFolder in objPrivateFs
If objFolder.Name = Inbox Then
Set objInbox = objFolder
Exit For
End If
Next
colRules.Folder = objInbox
For both the cases , U will see the following error at
colrules.folder=objInbox
-2147221241006~ASP 0177~Server.CreateObject
Failed~The operation completed successfully
which corresponds to MAPI_E_INVALID_ENTRYID
4Turn off the outlook client side rule created in step 2
...the code
4works
fine..
Turn on the outlook rule again..u will get the same error.
Remove the personal folders..u still get the same error.
Set delivery to back to Mailbox or personal folders..u
still get the error..
Observations :
1I am very sure that the Inbox folder being passed from my
code is the
correct
folder for which i want to set up rules thru my code.
2It looks like that code inside the RULE.DLL is fetching
entry id for
inbox for wrong default store failing when it finds two
Inbox entry ids (one for Mailbox another for Personal
folder in trooubled profiles )in the Exchange Server...
We tried to debug into Rule.dll sourcecode(available in
platsdk) in VC++
---
Created a pointer to the IRules interface.
I have used the function PutFolder(IDispatch *pVal) in
Rules.dll for assigning the folder,the function internally
calls put_Folder(LPDISPATCH newVal) of the CRules class.
The function load(LPSRowSet lpRowSet) of the CRules class
inside put_Folder(LPDISPATCH newVal) is returning 80040107
(MAPI_E_INVALID_ENTRYID).
Further I went inside the load(LPSRowSet lpRowSet) function
wherein its calling a function load(LPSRow lpSRow,ULONG
ulIndex) of CRule class. This function calls the funtion
load(LPACTIONS lpActions) of class CActions which calls
funtion load(LPACTION lpAction) of class CAction.
When the ulIndex is 3 i.e third time..
the
MethodInvoke(_Module.m_pCDOSession,_T(GetFolder),varResult
,dispParams,DI
SPATCH_PROPERTYGET)
function is returning 80040107 (MAPI_E_INVALID_ENTRYID).
This is happening for some users while others are getting
return value of 0 (SUCCESS).
---
Expecting some workaround fromu guys...
Cheers,
Nans
_
List posting FAQ: http://www.swinc.com/resource/exch_faq.htm
Archives: http://www.swynk.com/sitesearch/search.asp
To unsubscribe: mailto:[EMAIL PROTECTED]
Exchange List admin:[EMAIL PROTECTED]
_
List posting FAQ: http://www.swinc.com/resource/exch_faq.htm
Archives: http://www.swynk.com/sitesearch/search.asp
To unsubscribe: mailto:[EMAIL PROTECTED]
Exchange List admin:[EMAIL PROTECTED]