Помогите plz с Interop`ом.
Есть такой интерфейс (выдран из Microsoft.VisualStudio.OLE.Interop.dll):
[ComImport, Guid("B722BCCB-4E68-101B-A2BC-00AA00404770"), InterfaceType((short)1)]
public interface IOleCommandTarget
{
.......
[PreserveSig,
MethodImpl(MethodImplOptions.InternalCall,
MethodCodeType=MethodCodeType.Runtime)]
int Exec( // Executes a specified command or displays help for a command.
// Pointer to unique identifier of the command group
[In] ref Guid pguidCmdGroup,
// Identifier of command to execute
[In, ComAliasName("Microsoft.VisualStudio.OLE.Interop.DWORD")] uint nCmdID,
// Options for executing the command
[In, ComAliasName("Microsoft.VisualStudio.OLE.Interop.DWORD")] uint nCmdexecopt,
// Pointer to input arguments
[In] IntPtr pvaIn,
// Pointer to command output
[In] IntPtr pvaOut);
}
Во первых, можно ли ComAliasName("Microsoft.VisualStudio.OLE.Interop.DWORD") вообще убрать?
Во вторых мне нужно выполнить одну команду
Ее описание в MSDN:
Command group | CGID_MSHTML ("DE4BA900-59CA-11CF-9592-444553540000")
------------------------------------------------------------------------------
Symbolic constant | IDM_DISABLE_EDITFOCUS_UI (константа =2404)
------------------------------------------------------------------------------
User interface None. | OLECMDEXECOPT_DONTPROMPTUSER (константа =2)
------------------------------------------------------------------------------
IOleCommandTarget::Exec | pvaIn VARIANT of type VT_BOOL specifying whether this feature is to be on or off.
parameters | pvaOut Set to NULL.
------------------------------------------------------------------------------
т.е. должно быть что-то типо этого:
(Это для примера, в таком виде это даже не откомпилируется)
.......
Guid G = new Guid("DE4BA900-59CA-11CF-9592-444553540000");
int result = OleCommandTarget.Exec(ref G, 2404, 2, true, null);
.......
Вопрос в том как эту команду выполнить? (как правильно и каие параметры передать методу или как переделать Interop того интерфейса)
У меня проблема с pvaIn и pvaOut.
P.S. Или может можно это все сделать проще (Для тех кто понял что я хочу сделать)