|
[DllImport("ole32.dll", CharSet=CharSet.Auto)]
She's so dirty, she threw a boomerang and it wouldn't even come back.
|
|
|
|
|
Hi Stephane,
Thanks for your help.
I changed my codes as you suggest but it still doesn't work. I think I don't set type of parameters accurately.
Do you think my declaration below is correct?
[DllImport("ole32.dll", CharSet=CharSet.Auto)]
public static extern long CLSIDFromProgID(string ProgID, out Guid clsID);
Many thanks.
|
|
|
|
|
The return type is a 32-bit integer, which is int , not long .
Have you tried:
Type Excel = Type.GetTypeFromProgID("Excel.Application");
if (Excel == null)
Console.WriteLine("Fail.");
else
Console.WriteLine("OK.");
|
|
|
|
|
Can you explain what you're trying to do?
If you're trying to drive excel, you'd do that through COM interop, not through P/Invoke. You do that by adding the excel com component to your project (or through tlbimp if you don't have vs).
|
|
|
|
|
How would such an interop assembly behave on a system where excel is not installed? Would it crap out on me while loading the application or would it throw a bunch of exceptions at me when I try to instantiate the COM-objects?
--
Please state the nature of your medical emergency.
|
|
|
|
|
Hmm. I don't know the answer to that.
|
|
|
|
|
|
I didn't know we'd made those available.
The page you link is correct, you should use the primary interop assemblies rather than rolling your own.
|
|
|
|
|
Eric Gunnerson (msft) wrote:
you should use the primary interop assemblies rather than rolling your own
Any special reason for this?
--
Please state the nature of your medical emergency.
|
|
|
|
|
The big reason is that they're signed.
|
|
|
|
|
Eric Gunnerson (msft) wrote:
The big reason is that they're signed.
Sounds like political red tape typical from any company, am I right?...
Nick Parker
The goal of Computer Science is to build something that will last at least until we've finished building it. - Unknown
|
|
|
|
|
Nick Parker wrote:
Sounds like political red tape typical from any company, am I right?...
I don't understand your point.
|
|
|
|
|
Eric Gunnerson (msft) wrote:
I don't understand your point.
I was only being facetious. Just trying to lighten things up in the C# forum. No bad feelings?
Nick Parker
The goal of Computer Science is to build something that will last at least until we've finished building it. - Unknown
|
|
|
|
|
How much stuff do you not make available to us???
Norm Almond: I seen some GUI's in my life but WTF is this mess
Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough
Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children
Leppie:My sister is 25
-Norm on the MailMagic GUI
|
|
|
|
|
This much (holding hands about 3 feet apart)...
Perhaps "released" would have been a better term.
|
|
|
|
|
Okay. Just wanted one more reason to work at Microsoft...
Norm Almond: I seen some GUI's in my life but WTF is this mess
Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough
Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children
Leppie:My sister is 25
-Norm on the MailMagic GUI
|
|
|
|
|
Thanks for your reply.
I use Microsoft Excel Object Library to create and edit on Excel files. So I have to make sure that Microsoft Excel is already installed. I also want to check I can use ADOX on the user's computer or not. I think if getting CLSID of these components successfully, I can use them. Is it right?
|
|
|
|
|
How do I programmatically change a tab control that exists on another form?
|
|
|
|
|
What about the tab control do you want to change? One of the tabs, the color, the placement? What?
Norm Almond: I seen some GUI's in my life but WTF is this mess
Leppie: I made an app for my sister and she wouldnt use it till it was colorful enough
Norm:good point leppie, from that statement I can only deduce that this GUI must be aimed at children
Leppie:My sister is 25
-Norm on the MailMagic GUI
|
|
|
|
|
|
Derek Smigelski wrote:
One of the tabs.
We just need a "little" bit more details, then we can answer you
Before you criticize a man, walk a mile in his shoes. That way, when you do criticize him, you'll be a mile away and have his shoes.
|
|
|
|
|
I have a parrent form and child form (with a tree control) docked left on the parent form. The 5 tabbed tab control is on the parent form. When a user selects a node in the tree say "Node 1", I want the "Tab 1" to be selected as a result of what the user selected in the tree control. If use selects "node 5" tab 5 will be select automatically.
|
|
|
|
|
OK, thats a bit better
treeView.AfterSelect += new TreeViewEventHandler( NodeSelected );
void NodeSelected(TreeViewEventArgs e)
{
tabControl.SelectedIndex = e.Node.Index;
}
Now this will select the 2nd tab if u select the second node. You can do your own mapping to your liking
Before you criticize a man, walk a mile in his shoes. That way, when you do criticize him, you'll be a mile away and have his shoes.
|
|
|
|
|
Can't seem it find aname for the entire tab control (like in your example you have tabcontrol.) I have 5 tabs eached with a different name. Plus I get errors on ( NodeSelected ); saying more parameters are required.
|
|
|
|
|
Just to chip in, tabcontrol refers to the name of your TabControl variable (System.Windows.Forms.TabControl tabcontrol) as defined in your form class.
Gaul
Gaulles Technologies, Inc
http://www.gaulles.com
|
|
|
|