| |

C# EckeRe: Cannot convert ActiveScripting.IActiveScriptSite | |  | Autor: Rhutalia | Datum: 19.11.08 12:13 |
| Hallo Dave,
ActiveScripting ist eine importierte Typelib die ich nach Anweisung eines Artikels von Dr. Dobbs Portal erstellt habe (http://www.ddj.com/184405380). Ich arbeite ein Beispiel aus dieser Serie durch. Ich habe die GUIDs mit OleView gecheckt, die sind richtig.
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ActiveScripting;
namespace ScriptingHostTest2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("DB01A1E3-A42B-11CF-8F20-00805F2CD064")]
interface IActiveScriptSite
{
void GetLCID(out uint id);
void GetItemInfo(string pstrName, uint dwReturnMask, [Out, MarshalAs(UnmanagedType.IUnknown)] out object item, IntPtr ppti);
void GetDocVersionString(out string v);
void OnScriptTerminate(ref object result, ref stdole.EXCEPINFO info);
void OnStateChange(uint state);
void OnScriptError([In, MarshalAs(UnmanagedType.IUnknown)] object err);
void OnEnterScript();
void OnLeaveScript();
}
[ComImport, Guid("F414C260-6AC0-11CF-B6D1-00AA00BBBB58")]
public class JScript
{
}
public class ScriptHost : IActiveScriptSite
{
public void Run()
{
try
{
JScript engine = new JScript();
IActiveScriptParse32 iap = engine as IActiveScriptParse32;
iap.InitNew();
IActiveScript ias = engine as IActiveScript;
ias.SetScriptSite( this );
ias.Close();
}
catch( ExecutionEngineException e )
{
MessageBox.Show(e.Message, "ScriptingHostTest2");
}
}
public ScriptHost()
{
}
#region IActiveScriptSite
public void GetDocVersionString(out string v)
{
throw new NotImplementedException();
}
public void GetItemInfo([In, MarshalAs(UnmanagedType.BStr)] string name,
[In, MarshalAs(UnmanagedType.U4)] uint dwReturnMask,
[Out, MarshalAs(UnmanagedType.IUnknown)] out object item,
IntPtr ppti)
{
item = null;
if (name == "App")
{
item = new App();
if (ppti != IntPtr.Zero)
{
Marshal.WriteIntPtr(ppti,
Marshal.GetITypeInfoForType(item.GetType()));
}
}
}
public void GetLCID(out uint id)
{
throw new NotImplementedException();
//if (id == null)
//{
// throw new ArgumentNullException();
//}
}
public void OnEnterScript()
{
}
public void OnLeaveScript()
{
}
public void OnScriptError([In, MarshalAs(UnmanagedType.IUnknown)] object err)
{
}
public void OnScriptTerminate(ref object result, ref stdole.EXCEPINFO info)
{
}
public void OnStateChange(uint state)
{
}
#endregion
}
public class App
{
public App()
{ }
public void DoSomething()
{
MessageBox.Show("hello from dotnet");
}
}
}
Vielen Dank
Talia |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|