// CPPWiz.odl : type library source for OLE Control project.

// This file will be processed by the Make Type Library (mktyplib) tool to
// produce the type library (CPPWiz.tlb) that will become a resource in
// CPPWiz.ocx.

// ***************************************************************************
//
// Copyright (c) 1997-1999 Microsoft Corporation
//
// File: CPPWiz.odl
//
// Description:
//	This file contains the ODL for the CPP Wizard ActiveX control.
//
// Part of: 
//	cppwiz.ocx 
//
// History:
//	Judith Ann Powell	10-08-96		Created.
//
//  Primary dispatch interface for CCPPWizCtrl
//
//	  Properties:
//
//		CPPTargets - VARIANT of type VT_ARRAY | VT_BSTR
//		Set expects the namespace to be the first element of the array,
//		followed by object paths.  Setting this value kicks off the processing.
//		Get returns an array of only object paths.
//
//  Event dispatch interface for CCPPWizCtrl
//
//	  Methods:
//
//		void GenerateCPPs()
//		Fired when a the user double clicks on the control.  What ever processes
//		the event is exprcted to set the CPPTargets property.
//
//		void GetIWbemServices
//				BSTR lpctstrNamespace [IN],		Namespace to connect to
//				VARIANT* pvarUpdatePointer [IN],	Tells dll to get new pointer
//				VARIANT* pvarServices [IN/OUT],		Services pointer returned
//				VARIANT* pvarSC [IN/OUT],			S_OK on success or failure code
//				VARIANT* pvarUserCancel [IN/OUT])	Tells the control if user canceled
//		Fired when the control wants to connect to a namespace.
//
// **************************************************************************
#include <olectl.h>
#include <idispids.h>

[ uuid(35E9CBD0-3911-11D0-8FBD-00AA006D010A), version(1.0),
  helpstring("WMI Provider Wizard Control"), control ]
library CPPWIZLib
{
	importlib(STDOLE_TLB);
	importlib(STDTYPE_TLB);

	//  Primary dispatch interface for CCPPWizCtrl

	[ uuid(35E9CBD1-3911-11D0-8FBD-00AA006D010A),
	  helpstring("Dispatch interface for WMI Provider Wizard Control"), hidden ]
	dispinterface _DCPPWiz
	{
		properties:
			// NOTE - ClassWizard will maintain property information here.
			//    Use extreme caution when editing this section.
			//{{AFX_ODL_PROP(CCPPWizCtrl)
			[id(1), helpstring("Framework Target Objects")] VARIANT CPPTargets;
			//}}AFX_ODL_PROP

		methods:
			// NOTE - ClassWizard will maintain method information here.
			//    Use extreme caution when editing this section.
			//{{AFX_ODL_METHOD(CCPPWizCtrl)
			//}}AFX_ODL_METHOD



			[id(DISPID_ABOUTBOX)] void AboutBox();
	};

	//  Event dispatch interface for CCPPWizCtrl

	[ uuid(35E9CBD2-3911-11D0-8FBD-00AA006D010A),
	  helpstring("Event interface for WMI Provider Wizard Control") ]
	dispinterface _DCPPWizEvents
	{
		properties:
			//  Event interface has no properties

		methods:
			// NOTE - ClassWizard will maintain event information here.
			//    Use extreme caution when editing this section.
			//{{AFX_ODL_EVENT(CCPPWizCtrl)
			[id(1), helpstring("Framework Code Generation Request")] void GenerateCPPs();
			[id(2), helpstring("Get IWbemServices Pointer Request")] void GetIWbemServices(BSTR lpctstrNamespace, VARIANT* pvarUpdatePointer, VARIANT* pvarServices, VARIANT* pvarSC, VARIANT* pvarUserCancel);
			//}}AFX_ODL_EVENT
	};

	//  Class information for CCPPWizCtrl

	[ uuid(35E9CBD3-3911-11D0-8FBD-00AA006D010A),
	  helpstring("WMI Provider Wizard Control"), control ]
	coclass ProviderWizard
	{
		[default] dispinterface _DCPPWiz;
		[default, source] dispinterface _DCPPWizEvents;
	};


	//{{AFX_APPEND_ODL}}
};