Initializing A SAFEARRAY Ref In C# (port From VB?)?
Nov 21, 2011
I am working with a third-party COM component (i.e. do not have its code). The method in question has the following outline:
HRESULT GetTableInfo(
[in] BSTR bstrTableName,
[in,out] SAFEARRAY(BSTR) bstrColumnTitles,
[in,out] SAFEARRAY(long) lColumnPos );
I have tried to pass a ref to a fixed-size array ((Array)string[6]) and to a List.ToArray(), but it keeps crashing on me. E.g.
Array arr1 = (Array) new string[500];
Array arr2 = (Array) new int[500];
table.GetTableInfo(filename, ref arr1, ref arr2);
To be more specific: I already tried any value for the size (the correct one should be 44). Tried the same for the capacity of a List<>, but that didn't help either. I also tried different types, but it does not accept any other than int.
I don't know why it keeps crashing on me with a general error of that COM component (basically indicating that something is wrong, yet not saying what exactly), since I can confirm that the following VB code works:
Dim TitleList() As String
Dim PositionList() As Long
Call objTable.GetTableInfo(txTableFile.Text, TitleList, PositionList)
View 1 Replies
ADVERTISEMENT
Apr 20, 2012
I created a ATL project and I got a function like
idl File:
[id(1)] HRESULT COM_TEST( [in] int parm_count, [in, out] SAFEARRAY(PARM) *parm, [out, retval] short *return_code )
cpp file:
STDMETHODIMP CTEST::COM_TEST( int parm_count, SAFEARRAY **parm, short *return_code
[Code].....
My question is how do I input a array and output it?
View 1 Replies
Sep 27, 2009
I have tried this question several times, sometimes a little in the face of MS VB teams but with no constructive answers. Perhaps with too much rant. I suspect that VB.NET does not allow me to do what I can easly do in VB5.0. The VB team should easily be able to supply the information I need, but have not yet answered the questions. I want to do a lot of work on very large bitmaps (20 Mp or more; 80Mb or more ARGB) using arrays for access. This I used to do in VB5.0 using the SAFEARRAY and BITMAP STRUCTURES. NOT the corresponding .NET CLASSES. But I now need to use an SDK requiring .NET. However, through lack of wisdom, the VB team dropped 5 critical resources on the move to VB.NET - VarPtr, VarPtrArray, the 2 structures and CopyMemory. The SAFEARRAY CLASS seems to lack a set method for array data and the BITMAP CLASS seems to lack both get and set methods for data. On building a .NET solution using VB.NET, c#.NET and C++.NET projects I could not locate the set and get methods. Interop could not upgrade my VB5.0 to VB2005 - presumably on account of these 5 problems. I was surprised that even C++ suffered too. .NET hurts. So, first off, two critcal simple questions: A) Bearing in mind that much of the .NET is tinsel-wrapped APIs, does a pointer to an array still point to a defining SAFEARRAY STRUCTURE of the original format (NOT of course to a first element of an array). If that is so, I am lucky for I can then fill and use (perhaps) my own SAFEARRAY STRUCTURE by memory manipulation in C++. B) If the same applies to a bitmap pointer I can then perhaps do the same with BITMAP STRUCTURES. If that can be done I can hopefully work in a .NET solution containing C++ (for the pointer and mmory work) and VB2005 (for the rest of the work). I can then 1) in VB define two empty byte-arrays GLOBAL in VB.NET- Pic1() and Pic2(). They do not need to be dimensioned. SAFE FROM GC 2) in VB define two GLOBAL SAFEARRAYS to match the arrays, one with one and another with 2 dims matching the bitmap in size. SAFE FROM GC 3) move ByRef the 4 objects to VC++. STILL SAFE FROM GC, LEFT EXACTLY WHERE THEY WERE. 3) copy the BITMAP data pointers to the data pointers of the SAFEARRAYS. DOES NOT MOVE ANYTHING. 4) copy the addresses of the SAFEARRAYS to the corresponding arrays STILL DOES NOT MOVE ANYTHING, BUT JOB DONE. And then I will be able to process the images in seconds rather than minutes after moving only 4 4-byte numbers. I would welcome alternative sequences, provided they DO NOT involve put and set pixels or array elements on the trivial side and do not involve moving 80Mb of image data between "safe" and "unsafe" memory on the Herculian side. Else, as the Pic() ans Safearrays MUST point somehow to structures, WHAT EXACTLY ARE THEY, AND WHERE? I want to access them. If I can't overcome these 5 silly MS blunders I'll just have to build two uncoupled projects - one in VB5.0 and the other in VB/VC++ .NET. I'm not going to get involved myself with tinsel and gladwrap workarounds.
View 4 Replies
Mar 12, 2009
I wrote this - very simple - function, and then wondered does VB have some pre-built functionality to do this, but couldn't find anything specific.
[Code]....
View 5 Replies
Feb 17, 2010
I am writing a WPF application in VB 2008, and need to establish a connection to another system to get pertinent information and if not exit gracefully without displaying the form. I thought I would be able to do this in the Application classwithin Application_Startup and set some custom properties. However, it doesn't appear I can expose these properties outside the Application class without re-instantiation it, which is bad thing. Even variables set up as Friend don't appear to work either.
View 2 Replies
Oct 5, 2011
Why if I run the following code does the argument in the Add method pass {"foo2", "bar2"} in both method calls?
Dim myList As New List(Of String)
myList.AddRange(New String() {"foo", "bar"})
Add(New RandomClass("blah", myList ))
[CODE].....................
View 4 Replies
Jul 24, 2009
i have an application which i want the user to have access to forms base on their access right. I have a public module that that take care of the uers access right, but when I call this module from the form load event which return true(user has access to the form) then form load continue OR false(user dont hav access to the form) exit sub to discontue form load. but this is not stoping the form from loading.
'Check for user's permission
pubFormID = 107
'Call procedure
[Code].....
View 1 Replies
Jul 25, 2009
what the syntax is for initializing a list of a class, eg:-
Public class myparams
private myno as integer
private name as string
end class
[code]....
View 1 Replies
Nov 12, 2011
Here are the facts: Consider the following program. Sub Main()
[Code]....
Compiling the program in Visual Basic Express produces no errors. However, if the program is imported into the Excel Developer environment; I get the following error: Expected: end of statement with the equal sign highlighted. A side comment: About eight years ago, I wrote a Visual Basic simulation program to study financial trends. I found that version of Visual Basic user frendly! I find the 2010 version very difficult for doing simular projects.
View 2 Replies
Jun 8, 2011
I use the splash screen of the vb.net found on windows form.Is there a way that i could put an initializing while my splash screen is running?like other programs do instead of progress bar.
View 16 Replies
Sep 27, 2011
I'm using a structure to hold three arrays:
structure myStruct
dim arrayOne() as char
dim arrayTwo() as char
dim arrayThree() as char
end structure
But how do I go about setting them a value, I've got my instance of myStruct
dim aStruct as new myStruct()
If I try redim, it just tells me it can't change the dimensions of an array, so how do I got about initializing the arrays with values?
View 5 Replies
Jul 23, 2009
I have a form which i want to prevent from loading during the form initializition. which of the form event handles form initialization in VB.NET.
View 8 Replies
Nov 6, 2009
I have a winforms app that checks user credentials as it starts.If autharization fails I want to close the app.So I have been using the following
Public Sub New()
_CurrentUser.GetuserDetails
If _CurrentUser.IsAuthorized then
[code].....
View 2 Replies
Mar 10, 2011
I'm trying to return an array of strings from a function, and got surprised by an error.
I would have expected this to work, but it produces an error:
Public Function TestError() As String()
Return {"foo", "bar"}
End Function
[Code]....
I guess I'm unclear on the meaning of the {}'s - is there a way to implicitly return a string array without explicitly creating & initializing it?
View 3 Replies
Sep 1, 2010
Recently installed Visual Basic Express 2008. Install went fine. If I try to open the toolbox (from any of several locations), a meesage "Toolbox Initializing..." appears in the status bar, then after 15-20 seconds, VBExpress simply closes.
View 2 Replies
Jan 22, 2010
I tried to initialize a textbox value by using the .Text property
Textbox.Text = 0
But Im getting the error Option Strict On disallows implicit conversions from 'Integer' to 'String'.
View 2 Replies
Jun 23, 2011
My first try was to init performance counters in an array, which didnt work. Then I read up on performance counters and from that reading, the constructors are such that performance counters cannot be put in arrays. What does one do for multiprocessing?
View 6 Replies
Jun 20, 2012
Wasn't exactly sure how to word the title of the topic the best without making it a really long title, so I just stayed with a brief general topic to lure you guys into it .Anyways, I am using VB.NET and I have a PictureBox inside a panel that is not initially visible. Whenever a user clicks a button, I set the panel to visible, and I use Direct3D9 to render to the PictureBox but it does not work right when I set the panel to visible. I added a PictureBox_Paint function to handle the Paint event, but nothing. An interesting thing is if I sleep for about 1 or 2 seconds after I set the panel to visible and before I draw the picture with DirectX, it will draw it on. So it must be something when it is first setting it to visible that is affecting it. I do not have an actual image inside the picturebox, I am just using it to draw with DirectX.I'm not exactly sure what events are called right when you set the picturebox to visible.
View 6 Replies
Jan 23, 2010
I am initializing direct draw by the following:
vb
GraphicsCard = New Device
GraphicsCard.SetCooperativeLevel(Me, CooperativeLevelFlags.FullscreenExclusive)
Dim description As SurfaceDescription = New SurfaceDescription
surface to DirectX
Now the above works fine... for a fullscreen direct draw app...however i want to make a non-fullscreen app... how can i do that?I have tried several things with no avail and i also want the app to keep drawing when it does not have focus?
View 1 Replies
Sep 4, 2011
It has been way to long since I have been involved in VB so I need some help here. I have the following in my C# code
[Code]...
View 1 Replies
Oct 4, 2010
Is there a way to have a class collection of inherited types be initialized? For example, here is my code:
Public Class CamryCar
Property Name As String = "Camry"
Property Color As String
End Class
Public Class RedCamry
[Code] .....
I prefer this one as I don't have an extra property to deal with. But I can find a way to initialize that that list with objects of RedCamry and BlueCamry. Is it impossible or is there another way to do this?
View 3 Replies
Jan 20, 2009
In VB.Net is there any difference between the following three ways of initializing object variables
Method 1
Dim commandObject As SqlCommand
commandObject = New SqlCommand("MadeUpCommand")
Method 2
Dim commandObject As SqlCommand = New SqlCommand("MadeUpCommand")
Method 3
Dim commandObject As New SqlCommand("MadeUpCommand")
Is one more efficient than the others, or are they effectively all the same?
View 3 Replies
Jul 26, 2010
I've got some code that looks like this:
If ediFileGroupAbbr = "NIPDSINV" OrElse ediFileGroupAbbr = "WWPDSINV" Then
Dim p As New PrivateBillingAdapter_ForN(ediFileGroupAbbr, businessLocationID, mode, EDIJobItemLogID, BusinessUnitID)
Return p.ProcessEDI(True, False)
ElseIf ediFileGroupAbbr = "FOPDSINV" Then
[code]...
to which I'm passing in a value of ediFileGroupAbbr = "FOPDSINV". But the code is executing as if it's dropping into the third condition (p is a PrivateBillingAdapter). So I've stepped into the code and, sure enough, it drops into the second condition. BUT, if I step into the execution of the constructor, the debugger jumps to an odd place in the code - sort of the middle of a method and not on any actual line of code.A couple clicks and it hops back out of the constructor, still in the second block of code. But if I mouse over the variable p to see it's type, boom, its a PrivateBillingAdapter (from the third block).Like I said, something is clearly wrong but I don't know what. I've tried rebuilding several times but with no new results.This is VS2003, framework 1.1 with VB.NET.
View 1 Replies
Mar 26, 2012
I am creating a desktop application in vb.net by using visual studio 2008 and using ms sql 2008 as back end for my database.As I am creating application on my own system I know my connection string and I have created database manually on my system.
What I want is, when user install application on its system, the database created dynamically at that time on his system and he must enter server name, username and password for ms sql server that application should store for future use.If not at installation, it should atleast check and create database, everytime the user open the application.
View 2 Replies
Sep 30, 2011
Beginner question. How come I can do this:
Public Class Form1
Private StudentsInMyRoom As New ArrayList
Public name As String
[code].....
View 2 Replies
Sep 28, 2011
I am trying to install a 64 bit windows service application and I get the following error:Error 1001. Exception occurred while initializing the installation: System. BadImage FormatException: Could not load file or assembly 'file:///C:Program Files or one of its dependencies.An attempt was made to load a program with an incorrect format.
View 2 Replies
Nov 27, 2010
I'm mohammed from Oman ,I'm visual studio.net programmer How I can Read the Data From Barcode Weight scales By Serial port and TcpIp port
View 7 Replies
Jul 25, 2011
I have a Windows form.in windows form have a combo box that give me a list of available port serial with it code (Dim ports As String() =SerialPort.GetPortNames())for example( Com1,Com8,Com15,...).but I want to give me fullname of serial port in device manager for example in dvice manager is these (Comunication Port(COM1) - Printer Port(LPT1) And USB Serial Port(COM8)).how to Get it?
View 2 Replies
Jun 9, 2010
I would like to detect the Address and Port number of the Parallel Port in computer.
View 4 Replies
Jun 22, 2009
A spreadsheet formatter that I made for the department opens and closes Excel spreadsheets in the backround. If someone opens Excel while the macro is running, it stalls the entire program. I need a way to sense Excel opening, then stop it, preferably with a message box saying what just happened.
View 1 Replies