Platform invoke???
-
Hi all, using System.Runtime.InteropServices; ... [DllImport("ole32.dll")] public static extern long CLSIDFromProgID(string ProgID, out Guid clsID); ... Guid clsID; long ret = CLSIDFromProgID("Excel.Application", out clsID); if(ret==0) System.Console.WriteLine("OK."); else System.Console.WriteLine("Fail."); I use above codes for checking Microsoft Excel is installed or not. But it doesn't work at all, even if I already installed Microsoft Excel. Are there any missing in my codes?
-
Hi all, using System.Runtime.InteropServices; ... [DllImport("ole32.dll")] public static extern long CLSIDFromProgID(string ProgID, out Guid clsID); ... Guid clsID; long ret = CLSIDFromProgID("Excel.Application", out clsID); if(ret==0) System.Console.WriteLine("OK."); else System.Console.WriteLine("Fail."); I use above codes for checking Microsoft Excel is installed or not. But it doesn't work at all, even if I already installed Microsoft Excel. Are there any missing in my codes?
[DllImport("ole32.dll", CharSet=CharSet.Auto)]
She's so dirty, she threw a boomerang and it wouldn't even come back.
-
[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.
-
Hi all, using System.Runtime.InteropServices; ... [DllImport("ole32.dll")] public static extern long CLSIDFromProgID(string ProgID, out Guid clsID); ... Guid clsID; long ret = CLSIDFromProgID("Excel.Application", out clsID); if(ret==0) System.Console.WriteLine("OK."); else System.Console.WriteLine("Fail."); I use above codes for checking Microsoft Excel is installed or not. But it doesn't work at all, even if I already installed Microsoft Excel. Are there any missing in my codes?
The return type is a 32-bit integer, which is
int
, notlong
. Have you tried:Type Excel = Type.GetTypeFromProgID("Excel.Application");
if (Excel == null)
Console.WriteLine("Fail.");
else
Console.WriteLine("OK."); -
Hi all, using System.Runtime.InteropServices; ... [DllImport("ole32.dll")] public static extern long CLSIDFromProgID(string ProgID, out Guid clsID); ... Guid clsID; long ret = CLSIDFromProgID("Excel.Application", out clsID); if(ret==0) System.Console.WriteLine("OK."); else System.Console.WriteLine("Fail."); I use above codes for checking Microsoft Excel is installed or not. But it doesn't work at all, even if I already installed Microsoft Excel. Are there any missing in my codes?
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).
-
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.
-
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).
Ummm, Eric your company is giving us this: http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/999/msdncompositedoc.xml[^] and they say to use that instead of doing any type of COM stuff. Just thought I'd let you know. :) 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:laugh: Leppie:My sister is 25:eek: -Norm on the MailMagic GUI
-
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).
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?
-
Ummm, Eric your company is giving us this: http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/999/msdncompositedoc.xml[^] and they say to use that instead of doing any type of COM stuff. Just thought I'd let you know. :) 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:laugh: Leppie:My sister is 25:eek: -Norm on the MailMagic GUI
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.
-
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.
-
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.
-
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
**
-
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.
-
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
**
-
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.
How much stuff do you not make available to us??? :suss: 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:laugh: Leppie:My sister is 25:eek: -Norm on the MailMagic GUI
-
How much stuff do you not make available to us??? :suss: 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:laugh: Leppie:My sister is 25:eek: -Norm on the MailMagic GUI
This much (holding hands about 3 feet apart)... Perhaps "released" would have been a better term.
-
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...:-D 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:laugh: Leppie:My sister is 25:eek: -Norm on the MailMagic GUI