I would like to create an UI extension add-on for M-Files, but I am new to developing for M-Files,
so I decided to start with adjusting the sample code and see where it gets me.
1. I downloaded UsingManagedAssemblies sample from github:
https://github.com/M-Files/MFilesSamplesAndLibraries/tree/master/Samples/UIX%20Applications/UsingManagedAssemblies
2. I zipped the contents of uix folder and installed it to [color=blue]MyVault[/color] using the M-Files Admin tool.
3. Upon entering [color=blue]MyVault[/color] using the M-Files Online explorer, I got a popup window stating: "MyVault says Hello!".
4. I was happy to have successfully installed and ran the sample add-on!
Next, I wanted to add an extra method to the:
Class1.cs file:
public class Class1 {
public void ShowMessage(Int32 parentHWND, string message, dynamic vault) {
// Get a reference to the window from the provided handle.
IWin32Window parentWindow = Control.FromHandle((IntPtr)parentHWND);
// Show the message.
MessageBox.Show(parentWindow, $"{vault.Name} says {message}");
}
public string GetString() {
return "GetString()";
}
}
main.js file:
function getShellFrameStartedHandler(shellFrame) {
return function() {
var clrObject = MFiles.CreateObjectCLR( "MyClassLibrary.dll", "MyClassLibrary.Class1" );
var myString = clrObject.GetString();
clrObject.ShowMessage( shellFrame.OuterWindow.Handle, "Hello!", shellFrame.ShellUI.Vault );
};
}
So that I can use myString value instead of the hardcoded: "Hello!" string in the line:
[size=12pt]clrObject.ShowMessage( shellFrame.OuterWindow.Handle, "Hello!", shellFrame.ShellUI.Vault );[/size]
(I did not change the "Hello!" string for myString variable yet. I only added the var myString = clrObject.GetString(); into the main.js file)
I zipped the new .dll and main.js together with appdef.xml into a .zip file and installed it onto [color=blue]MyVault[/color] again.
Upon opening [color=blue]MyVault[/color] using the M-Files Online explorer I get the following error message:
https://imgur.com/a/2iIT4zg
(The green text is my translation for you)
With the following details:
CoScriptDelegate_Events.cpp, 396, Objekt nepodporuje t?to vlastnosť alebo met?du (0x80040008)
IDispatchInvocation.cpp, 96, Objekt nepodporuje t?to vlastnosť alebo met?du (0x80040008)
Managed Assemblies: main.js, 49, Objekt nepodporuje t?to vlastnosť alebo met?du (0x80040008)
MErrorHelper.cpp, 2457, Objekt nepodporuje t?to vlastnosť alebo met?du (0x80040008)
(M-Files 20.1.8669.3)
Does anyone know what is the problem?
What am I doing wrong?
The uix.zip can be found in the attachments.
