コード例 #1
0
ファイル: Child.cs プロジェクト: khanhas/PowershellRM
        internal ChildMeasure(API api)
        {
            rmAPI = api;
            proxy = new APIProxy(api);

            string parentName = api.ReadString("Parent", "").ToLowerInvariant();
            IntPtr skin       = api.GetSkin();

            parent = null;

            // Find parent using measure name AND the skin pointer to be sure that it's the right one.
            foreach (ParentMeasure parentMeasure in ParentMeasure.ParentMeasures)
            {
                if (parentMeasure.skin.Equals(skin) &&
                    parentMeasure.measureName.Equals(parentName))
                {
                    parent = parentMeasure;
                    break;
                }
            }

            if (parent == null)
            {
                api.Log(API.LogType.Error, "PowershellRM.dll: Parent=" + parentName + " not valid");
                return;
            }

            runspace = parent.runspace;
        }
コード例 #2
0
ファイル: plugin.cs プロジェクト: khanhas/PowershellRM
        public static void Initialize(ref IntPtr data, IntPtr rm)
        {
            API     api = new API(rm);
            Measure measure;

            int async = api.ReadInt("Async", 0);

            if (async == 1)
            {
                measure = new AsyncMeasure(api);
            }
            else
            {
                string parent = api.ReadString("Parent", null);

                if (string.IsNullOrEmpty(parent))
                {
                    measure = new ParentMeasure(api);
                }
                else
                {
                    measure = new ChildMeasure(api);
                }
            }

            data = GCHandle.ToIntPtr(GCHandle.Alloc(measure));
        }