Конференция "WinAPI" » MAPI_E_INVALID_ENTRYID [D7, NT4, Win2k, WinXP]
 
  • AlexK © (24.04.08 17:57) [0]
    Подскажите, пожалуйста, почему при открытии папки может выдаваться такая ошибка?

    Result:= MAPISession.OpenEntry(Value.cb, PENTRYID(Value.lpb), @IID_IMAPIFolder, 0, iTmpVal, IUnknown(MAPIFolder));

  • AlexK © (24.04.08 18:32) [1]
    В общем смысл следующий:

    ...

    var
    MsgStoreID, Value: TSBinary;

    procedure GetFolder;
    var
    MsgStoresTable: IMAPITable;
    MsgStore: IMsgStore;
    begin
     MAPISession.GetMsgStoresTable(0, MsgStoresTable);
     ... получаем список MsgStoresRowSet
     for i:= 0 to MsgStoresCount-1 do
     begin
        MsgStoreID:= PSPropValueArray(MsgStoresRowSet.aRow[I].lpProps)[0].Value.bin;
        MAPISession.OpenEntry(MsgStoreID.cb, PENTRYID(MsgStoreID.lpb),
           @IID_IMsgStore, 0, iTmpVal, IUnknown(MsgStore));
        ... тут получаем список папок, определяем нужную, сохраняем Entryid в переменную Value
        MsgStore.StoreLogoff(x);
        ... очищаем буфер и т.п....
     end;

     procedure OpenFolder;
     var
        MsgStore: IMsgStore;
     begin
    MAPISession.OpenEntry(MsgStoreID.cb, PENTRYID(MsgStoreID.lpb),
               @IID_IMsgStore, 0, iTmpVal, IUnknown(MsgStore));
      Res:= MAPISession.OpenEntry(Value.cb, PENTRYID(Value.lpb), @IID_IMAPIFolder, 0, iTmpVal, IUnknown(MAPIFolder)); < ошибка здесь
       .......
     end;
     
    end;

  • AlexK © (24.04.08 18:35) [2]
    Сорри, опечатался... Процедуры не вложены друг в друга, а отдельные. ;)
 
Конференция "WinAPI" » MAPI_E_INVALID_ENTRYID [D7, NT4, Win2k, WinXP]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]