Attribute VB_Name = "z_UIMessages" ' Messaging module Option Private Module Option Explicit Public Enum MsgCode MSG_OK = 0 EM_VISIO_INPUT EM_FILENAME_EMPTY EM_INVALID_SELECTION EM_ERROR_LOADING_FILE EM_INVALID_FILE_FORMAT EM_WORD_MAX_LEVELS EM_INVALID_STRUCTURE EM_CANNOT_TRANSFORM_DEEP EM_INVALID_FORMAT IM_EXPORT_OK IM_IMPORT_OK IM_NEW_TEMPLATE ' QM_CODE_DELETE_CONFIRM End Enum Private g_UI As API_UserInteraction Public Function UserInteraction() As API_UserInteraction If g_UI Is Nothing Then _ Set g_UI = New API_UserInteraction Set UserInteraction = g_UI End Function Public Function SetUserInteraction(newUI As API_UserInteraction) Set g_UI = newUI End Function Public Function UIShowMessage(theCode As MsgCode, ParamArray params() As Variant) Dim unwrapped As Variant: unwrapped = params unwrapped = FixForwardedParams(unwrapped) Select Case theCode Case EM_VISIO_INPUT Call MsgBox("Режим ввода из Visio не требует указания входа", vbInformation) Case EM_FILENAME_EMPTY Call MsgBox("Не указан путь к входному файлу", vbExclamation) Case EM_INVALID_SELECTION Call MsgBox("Для данной операции необходимо выделить одну корневую форму", vbExclamation) Case EM_ERROR_LOADING_FILE Call MsgBox("Ошибка при загрузке файла", vbExclamation) Case EM_INVALID_FILE_FORMAT Call MsgBox("Ошибка при загрузке данных!" & vbNewLine & _ "Проверьте соответствие входа заданному формату", vbExclamation) Case EM_WORD_MAX_LEVELS Call MsgBox("Экспорт в Word возможен только для 9 и менее уровней!", vbCritical) Case EM_INVALID_STRUCTURE Call MsgBox("Некорректная структура иерархии", vbCritical) Case EM_CANNOT_TRANSFORM_DEEP Call MsgBox("Трансформировать можно только узлы не имеющие ""внуков""", vbCritical) Case EM_INVALID_FORMAT Call MsgBox(Fmt("Содержимое файла {1} не соответствует требуемому формату", unwrapped), vbExclamation) Case IM_EXPORT_OK Call MsgBox(Fmt("Экспорт прошел успешно!" & vbNewLine & _ "Всего узлов: {1}" & vbNewLine & _ "Максимальная глубина: {2}", unwrapped), vbInformation) Case IM_IMPORT_OK Call MsgBox(Fmt("Импорт данных прошел успешно!" & vbNewLine & _ "Всего узлов: {1}" & vbNewLine & _ "Максимальная глубина: {2}" & vbNewLine & _ "Размер листа: {3} x {4}", unwrapped), vbInformation) Case IM_NEW_TEMPLATE Call MsgBox(Fmt("Новые шаблон создан успешно: {1}", unwrapped), vbInformation) Case Else Call MsgBox("Invalid message code", vbCritical) End Select End Function Public Function UIAskQuestion(theCode As MsgCode, ParamArray params() As Variant) As Boolean Dim unwrapped As Variant: unwrapped = params unwrapped = FixForwardedParams(unwrapped) Dim answer&: answer = vbNo Select Case theCode ' Case QM_CODE_DELETE_CONFIRM ' answer = MsgBox("Are you sure you want to delete ALL macros from target file?", vbYesNo + vbQuestion) Case Else Call MsgBox("Invalid message code", vbCritical) End Select UIAskQuestion = answer = vbYes End Function