ComClass - Define A Coclass With A Default Interface
Jan 29, 2010
I am trying to re-code a com object that was developed in c++ using vb.net. I have successfully recreated the methods and have been able to register my new vb.net com class with regasm and use it from vb-script. The issue is that the previous class used a coclass with a default interface allowing us to create objects in our vb scripts by simply calling the library.
eg.
Code:
dim z
set z = createobject("library")
my com object requires that i do the following
eg.
Code:
dim z
set z = createobject("library.interface")
because we do not want to redo all our vb scripts is there a way to have my code function in the same manner as the previous c com object? with out getting into great detail my vb code to create the class looks as follows which is essentially what vb.net provides me. for simplicity I have not added my methods. [Code]
I am making an interface that has a number of events defined in it. When I implement the interface in a class the events will show up. I want to force a class that implements my interface to also have to make the event handlers too. I don't care where the class raises the event, but I want them to have to define what happens once the event is raised. Is this possible and if so, how do I do it?
Currently when i add my control to a form and double click it it adds a sub with the handle control.load to the code but i want it to be control.click when i double click it
When I run the code to setup the watcher everything run ok. When A new file is detected, I get the messagebox with no problem. After I click 'ok', the vb6 app that called this crashes with no error.[code]......
I've run across some VB.NET code that explicitly creates three GUID constants and uses them in a class's ComClass attribute. I've written COM-aware classes in the past just by checking the "Make COM-Visible" and "Register for COM interop" options in the project options. Is this explicit code simply unnecessary, or is it doing something above-and-beyond what those two options do? Here's a snippet:
<ComClass(MenuHandler.ClassId, MenuHandler.InterfaceId, MenuHandler.EventsId)> _ Public Class MenuHandler Public Const ClassId As String = "A2204623-A902-44d4-B524-FDFFCD176E53"
I have an interface that I've defined and am working through a bunch classes that will implement it. I'm noticing that in 95% of the implementations, I'm only changing a few lines of the code, so I'd like to know if it's possible to have my IDE generate a block of code inside of a method upon implementation, much the same as implementing IDisposable.not mark my posts as answered. It is extremely rude. You have no idea if you've answered my question.I WILL come back and mark the ones that are answers, as answers.
I like the default icon the program uses on the form title bar. The icon with the little red yellow and blue colored squares. I would also like to use it as the application build icon so it use it as the icon for the .exe file and shortcuts to the .exe file.I searched a long time and couldn't find the answer. Some said to take a screen-shot of the icon displayed on the screen and crop the image and make an icon that way, but when I tried to use alt-tab with the program running, and press print-screen, the alt button made it take a screen-shot of the currently selected window and not the entire screen, so I couldn't figure out how to get a screen-shot of it at it's full size.
I am comparing an alternative Dispose pattern to VS2005's default implementation. In doing the comparison I have found several uncertainties with the default pattern which have raised a handful of questions related to sub-class implementations and object Finalization.
I have a form with buttons, and the user can change the colors of the buttons with the color dialog box for fun:
Button_Play.BackColor = ColorDialog.Color
There is a reset button to put the colors to how they were without any special coloring, but I can't get them to go back to how they originally looked.They go to gray in the middle, instead of the nice shaded blue/gray style. I have tried a few different things:
I am using VB '08 Express on Win XP with the Desktop, Display Properties, Appearance, Windows and Buttons: set to Media Center Style and Color Scheme: set to Energy Blue. how to (with this theme) get the button to look like default after changing the color?
<AcceptVerbs(HttpVerbs.Post)> _ Function Widget(ByVal collection As FormCollection) As ActionResult ... If ... Then
[code]....
I upgraded to ASP.NET MVC 2 Beta and ASP.NET MVC 2 Futures Assembly for Beta and now ToValueProvider() fails with this compile-time error: Interface 'System.Web.Mvc.IValueProvider' cannot be indexed because it has no default property How do I use ModelState.SetModelValue() if not with collection.ToValueProvider()?
I need to print the contents of 3 textboxs to default printer. what examples I have found dont seem to work. I was trying the documentprint1 component as i thought it would be easy but cant figure out how to tell it what to print the second part is to print a variable (string) to the printer as well.no need for user to select just straight to default printer with its default settings
I have a combobox which contains a sample of names selected from a table.Currently the default name displayed in the box is the 1st name found in the table. What I would like to do is display the name of the person who is doing the selection as the default. The name is stored in a public variable 'PubName' and I do not want the user to be able to type into the combobox themselves.Is this possible?
I am creating my own browser. I want to make an option...to set as the browser to default.To do that I have to:Write a code which opens html(generally internet) file through my browser(form load event) DoneChange the "open with..." of the .html,.xml.... files Problem I want to change the open with event from my web browser. Actually i want an options form which will ask the user "Do you want to set /Browser name/ to be your default browser?" If yes then it will change the default options of the internet files.
I'm working on a design project where I have to use a Graphical User Interface that contains a drag and drop form. It consists of having a window dropped on a wall. Both of them are images to scale. I would like to know what kind of code I would have to use to show the x and y coordinates of one of the points of my window when dragged so when I drop it, I'm dropping in it on the desired coordinate of the wall.
I was wondering if I could elicit some tips on how to procede with an interface design approach.That is. What is a good way to go about establishing a "work area" where one can have multiple "floating forms" in this area.Can you have a form which occupies the entire windows desk top and the other forms "float" in this space? the "floating" forms would need to interact with each other where pressing buttons etc on them would affect other forms on the "workspace") Or what would be a good way to start accomplishing that? Or is there a better way to get the same effect?
I'm trying to make a .dll that contains a lot of basic functionality that a program can use. Currently i am trying to use interfaces to make a lot of this functionallity independend of the program using it but i hit a snag. The Basic idea is that a programmer will create his own object using the interface discribed in my .DLL file. Then implements those functions as he likes. He can then instanciate a controller (found in the same DLL) and sends his custom object implementing the interface to that Controller. The controller can then be started and will take over all the work. I do not know what type of object is send to the controller and idealy i want to program it in such a fashion that i shouldn't care as long as the object send implements that interface.In code I am trying to achieve the following: (quite simplyfied)
.Dll: Code: Public Interface MyInterface '<----Decleration of the interfaceFunction GetData() As Integer Function SetData(Data As Integer) end interface
[code]....
this propperly. I know that the second i set the interface adaptor in the Controller VS comes nagging that it can not be converted to a "MyInterface" Class. Obviously i am doing something wrong. I can change the datatype that the controller expects to the "MyController" type but that would completely ruin the whole idea of flexibillity. I am hoping someone sees what i am trying to do and can point out where i made the thinking error.
Is this where i would post a picture of my interface and get feedback on changes for easier use? If not is there someplace on this forum or any other forum to do this?
in the codebase i'm maintaining there is an old interface. Let's call it IFoo. It pretty much became obsolete and replaced with the Interface INewFoo with a change a few weeks ago, but for backwards-compatibility purposes, i wrote a wrapper class which implements INewFoo and takes an IFoo in the constructor.To clarify, consider the following code.
Public Interface IFoo Sub DoStuff() End Interface[code].....
For both interfaces, the implementations are loaded by scanning a few assemblies with StructureMap. Now, let's get to the bad things. Most implementations for the old interface were put into forms for reason i can neither understand nor change. Because those tend to be displayed and disposed, i have to create a new instance every time i use ObjectFactory.GetAllInstances(Of IFoo). Thats still no problem, but i'd like to register a INewFoo-Wrapper for each registered implementation of IFoo, so that i can just use ObjectFactory.GetAllInstances(of INewFoo) and get all implementations of IFoo AND INewFoo.I can't iterate through the implementations of IFoo and register a wrapper for each one because as far as i can see, you can just register those with instances.Wrong code below:
ObjectFactory.Configure(Sub(config) config.Scan(Sub(scan) For Each ass In assemblies[code].....
My question is: Is it possible to register a wrapper for each implementation of IFoo which always creates a new instance of the implementation before creating a new instance of the wrapper?
I want to declare a property as an interface collection of an interface, and I want to instanciate the explicit type later, in the constructor. Something like this.
Public Class LicenseFile Implements ILicenseFile Public Property Collection As IList(Of ILicenseFileDataNode)
[Code]....
In short, the question is "Why It Didn't work"? This is a simplified scenario, but It's easy to take a workarround, But I need understand the reason because It's fails.
Is it possible to set a project default for VB.NET winforms projects so that the default Modifier for controls added to winforms is Private (not Friend)?I know there's a "modifiers" property in the properties window so I can set it for each individual control however I would like to change the project so from now on myself and other developers have to specifically decide to change from friend to private. (Which I would strongly discourage them from doing).I believe there is no way of doing this, but on another forum a while ago someone mentioned it would be possible with an add-in (but didn't name the add-in or where to get it).
I am using System.Reflection to load a type that I cannot otherwise load during design time. I need to pull all controls within a collection of this type, however, i the OfType command doesn't seem to like the reflection Syntax. here is "close to" what I got.
Dim ControlType As Type = System.Reflection.Assembly.GetAssembly( _ GetType(MyAssembly.MyControl)) _ .GetType("MyAssembly.MyUnexposedControl") Dim Matches as List(Of Control) = MyBaseControl.Controls.OfType(Of ControlType)
So that code is bogus, it doesn't work, but you get the idea of what I am trying to do. So is there a way to use reflection and get all of the controls that are of that type?
i wonder if it's possible to define a variable/property of more than one type. Let's say i want a property TextWebControl that is a WebControl and also implements Web.UI.ITextControl(f.e. like a TextBox or Label). But i don't want to enforce that it is a TextBox or Label, but only one that inherits from WebControl and also implements ITextControl so that it also would work with controls added in future releases of .Net-Framework.
.Net-Framework 4.0
Edit: I have retagged the question and added VB.Net because it's my default language. Normally it's no problem for me to understand C# also, but i must admit that it's difficult to translate generic stuff to VB.Net without experiences and it's also better documentated in C# than in VB. So i would appreciate(and aceept) a working example of a VB.net generic type of ITextControl/WebControl.From Marc's answer i understand that i need a generic class. But how do i instantiate it in SomeClass? This won't compile:
Class SomeClass Public Property info As InfoControl(Of WebControl, ITextControl) End Class Public Class InfoControl(Of T As {WebControl, ITextControl}) End Class
Is there any way to define a Generic in VB.NET which will accept only Singles or Doubles? I tried the following things, based on what I've found online, but none compile:
Dim target As Nullable(Of {Single, Double}) Dim target As Nullable(Of T As {Single, Double}) Dim target As Nullable(Of T {Single, Double}) Dim target As Nullable(Of Single, Double) Dim target As Nullable(Of T As Single, Double)
I want to specify that target can either be a Single? or a Double? only.
I have a class called "heater". One of the properties is "designstatus", a string. I want to limit the property to one of three choices; "current", "obsolete", "notdesigned".