C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Обработка входящих висем через Microsoft Outlook
juice
Отправлено: 08.06.2005, 14:31


Дежурный стрелочник

Группа: Участник
Сообщений: 33



Пишу процедуру обработки входящих висем через Microsoft Outlook. Застопорился на проблеме:
CODE

String FileName;
...
Attach = oMsg.OlePropertyGet("Attachments").OleFunction("Item", Counter);

                  FileName = "C:\tmp\" +  oMsg.OlePropertyGet("Attachments").OleFunction("Item",Counter).OlePropertyGet("FileName");

                  Attach.OleProcedure("SaveAsFile", FileName);

На последней строчке вылетает ошибка : EOleSysError 'Bad variable type'. Код переводил с пскаля, там все нормально работало. Пробовал писать Variant FileName — не помогло. Что не так?
xim
Отправлено: 08.06.2005, 15:13


Станционный диспетчер

Группа: Участник
Сообщений: 143



Попробуй в
CODE
"C:\tmp\"
использовать \\
juice
Отправлено: 08.06.2005, 15:51


Дежурный стрелочник

Группа: Участник
Сообщений: 33



Сои, это вообще опечатка была. С двойным слэшем та же история.
GIZMO
Отправлено: 10.06.2005, 09:50


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (juice @ 08/06/2005, 14:31)
Пишу процедуру обработки входящих висем через Microsoft Outlook. Застопорился на проблеме:
CODE

FileName = "C:\tmp\" + oMsg.OlePropertyGet("Attachments").OleFunction("Item",Counter).OlePropertyGet("FileName");

Attach.OleProcedure("SaveAsFile", FileName);

Что не так?

FileName = "C:\tmp\" + oMsg.OlePropertyGet

"C:\tmp\" — тип char*
oMsg.OlePropertyGet — возвр. тип Variant у которого есть operator AnsiString(), но нет оператора приведения к char*
т.е. надо
FileName = String("C:\\tmp\\") + oMsg.OlePropertyGet
а лучше использовать WideString

juice
Отправлено: 10.06.2005, 10:00


Дежурный стрелочник

Группа: Участник
Сообщений: 33



FileName = (String)("C:\\tmp\\")+ (String)(oMsg.OlePropertyGet("Attachments").OleFunction("Item",Counter).OlePropertyGet("FileName"));

ShowMessage(FileName);

Attach.OleProcedure("SaveAsFile", FileName);

Ничего не изменилось sad.gif
juice
Отправлено: 10.06.2005, 10:21


Дежурный стрелочник

Группа: Участник
Сообщений: 33



GIZMO, огромное спасибо, WideString мне помог!!!
cool.gif cool.gif biggrin.gif biggrin.gif biggrin.gif

Вернуться в Технологии COM/DCOM, ActiveX