MAPI и события управляемого кода? [закрытый]

Эта проблема может возникнуть в android 6.0, если вы не разрешили разрешение камеры для своего приложения. Как и в случае с Android 6.0, вы можете обрабатывать разрешение на разрешение приложения, которое вы предоставите или не имеете конкретных прав для приложения.

Итак, вам нужно разрешить разрешение из settings->apps->your_app->enable camera permission, если оно еще не включено.

12
задан Mark Biek 31 August 2008 в 00:27
поделиться

7 ответов

Имейте отдельного помощника EXE, который берет параметрические усилители командной строки (или канал к его StandardInput), который делает то, что требуется, и назовите это из своего главного приложения. Это сохраняет материал MAPI за пределами пространства процесса Вашего главного приложения. Хорошо, Вы все еще смешиваете MAPI и.NET, но в очень недолгом процессе. Предположение - то, что MAPI и CLR начинают вызывать проблемы с дольше рабочими процессами.

Мы пользуемся превосходной библиотекой Redemption Data Objects Dmitry Streblechenko, которая позволяет нам писать такой код "контейнера" в JScript и вызывать это, которое сохраняет CLR и миры MAPI в отдельных процессах, но поддерживаемым способом.

@Chris ре Fournier. запись неуправляемого DLL. Это не будет работать, потому что проблема смешивает MAPI и управляемый код в том же процессе.

8
ответ дан 2 December 2019 в 22:07
поделиться

Обработка вызовов. Запустите на Mailto: протокол (как показано ниже) даст Вам основную функциональность, но не вложения.

Process.Start("mailto:name@domain.com?subject=TestCode&Body=Test Text");

Можно сделать этот подход с путями вложения, но эта опция только работает с некоторой старой версией перспективы такой как 98. Я предполагаю, что это происходит из-за потенциала securty риск.

Если кто-либо действительно будет использовать outlook.exe, то это даст предупреждения системы безопасности под перспективой 2003 (и Иждивенец 2007 года на настройках).

1
ответ дан 2 December 2019 в 22:07
поделиться

Необходимо смочь сделать неуправляемый DLL, который выполняет операции, Вы хотите использовать MAPI и затем вызываете тот DLL из своего управляемого кода. Я не записал бы прямую обертку MAPI, но что-то, что выполняет всю функциональность, которой Вы требуете MAPI, содержавшегося в том неуправляемом DLL. Это, вероятно, было бы самым безопасным способом использовать MAPI из управляемого кода.

1
ответ дан 2 December 2019 в 22:07
поделиться

Вы могли также использовать Освобождение Outlook, которое поддерживается из управляемого кода; я не сразу уверен, имеет ли это простую замену MAPISendDocuments, но Dmitry, услужливый, если у Вас есть вопросы.

Что касается "катастрофических отказов и записей", вот другая кавычка от MS, поддерживают парня, здесь

Это - вид вещи, это будет главным образом работать. Это будет работать, в то время как Вы пишете это. Затем это будет работать при тестировании его. Это будет работать, в то время как Ваш клиент оценивает его. Затем, как только клиент развертывает его - BAM! Именно тогда это решит начать иметь проблемы. И Microsoft не собирается помогать Вам с ним, так как мы сказали Вам не делать это во-первых.:)

1
ответ дан 2 December 2019 в 22:07
поделиться

Для кого-то испытанного с MAPI, им потребовалось бы меньше времени для проворота кода, чтобы сделать точно, что Вы хотите от неуправляемого кода (чтение: плоскость C++), чем ввод этого сообщения и чтение ответа (никакое преступление).

Вы удачливы функциональность, в которой Вы нуждаетесь, ограничен. Все, в чем Вы нуждаетесь, является простой утилитой C++ для взятия параметрических усилителей, в которых Вы нуждаетесь на командной строке и издаете правильные приказы MAPI. Затем Вы вся эта утилита из Вашего управляемого кода, как Вы были бы для выполнения любого другого процесса.

HTH

-3
ответ дан 2 December 2019 в 22:07
поделиться

Я сделал это использование функции MAPISendMail и нескольких внутренних классов для обертывания некоторых из других связанных с MAPI структур. Пока это - единственное использование, это возможно, хотя не тривиальный, чтобы сделать безопасно, поскольку это требует очень пристального внимания к различным неуправляемым типам данных и выделению памяти / освобождение и GC. В то время как это все еще не поддерживается, я использую это в производственном коде (хотя это еще не поставлялось).

Когда я спросил Matt Stehle об этом, ответ, который я получил, был:

Я действительно не знаю о намного лучшем способе сделать это и любые проблемы, с которыми Вы столкнулись, здесь будет, вероятно, восстанавливаемо в поддерживаемом сценарии (т.е. VB6 или неуправляемый C++). Просто знайте, что, если бы Вы когда-нибудь сталкивались со сценарием, была проблема, был вызван конкретно этой функцией, называемой от.NET, что у нас не было бы никакой другой рекомендации для Вас затем для не использования.NET.

Не точно благословение при использовании его, но также и не высказывании там является любыми другими опциями на самом деле сделать это из управляемого кода.

1
ответ дан 2 December 2019 в 22:07
поделиться

MAPISendDocuments устарел и может быть удален. Вместо этого вам следует использовать MAPISendMail. См. Простой MAPI

2
ответ дан 2 December 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: