|
I need the new Windows XP icons for common toolbar operations such as New, Open, Print, Save etc. Are they available somewhere?
|
|
|
|
|
These are actually not icons but a Bitmap image strip in the Bitmap resource type section of several different executables. If you want the ones that you typically see in Windows XP, open the library %windir%\system32\browseui.dll, expand the Bitmap section, and view the various Bitmaps which you can right-click and extract. For the high-res 8 bit, 20x20 pixel buttons, see resource #266, for example.
You can either chop these up into squares using the Office Photo Editor or MS Paint or any other basic graphic package, set the ImageList.TranspartColor property to the color mask (with the bitmaps mentioned above, it's Magenta) and use these at design-time, or read the whole strip into an ImageList using ImageList.Images.AddStrip and embed the bitmap resource in your assembly (in the VS.NET project, select the Bitmap and change the "Build Action" in the property grid to "Embedded Resource"). See Assembly.GetManifestResourceStream for infomration about how to read that embedded resource. One of the Image constructor overloads can do that easily as well.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
|
Sorry, 8-bit / 256-color. Fixed in the previous post.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
126 bit... do you meant 8?
/\ |_ E X E GG
|
|
|
|
|
1) I changed it before you could've seen it, and 2) where you did you get 126-bit? It used t say "256 bit" by mistake, when it should've said 8-bit. Yes, I do very much know the difference but people make mistakes, especially when they're tired.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
yes, i totally agree.
/\ |_ E X E GG
|
|
|
|
|
Hi All,
In my code I am opening a window( new process)using System.Diagnostic.Process.
In this window there is one button to open a modal dialog.
Is there any way I can check whether dialog is open or not using process object.
Thanks in advance,
Tonu
|
|
|
|
|
If this is another .NET application, you could use .NET Remoting to communicate across the two AppDomain hosted by each process. Another way - and if the process is a native application - is to P/Invoke FindWindow to find a Window with the given text (assuming the dialog has a unique caption):
[DllImport("user32.dll", CharSet=CharSet.Auto)]
IntPtr FindWindow(string class, string caption);
...
IntPtr hWnd = FindWindow(null, "My Dialog Caption");
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hi,
Dose anybody know where can i download "Server 2003 DDK", and i need to write a program to comunicate and transfer files with a remote computer via modem with this protocols (ZMODEM/XMODEM), can you send me some hint or source code links to help me to start it.
thanks in advance.
|
|
|
|
|
|
Our clients using windows platform, please give me windows based hint.
thanx
|
|
|
|
|
This is the C# forum, not the Windows or Windows DDK forum. Please post to the C/C++ forum or the OS forum, or go to http://msdn.microsoft.com[^].
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
|
I am trying to import some functions from an open source library(DLL).
//Here is the function definition in C/C++
PJ* pj_init(int argc, char **argv);
//Here is the PJ struct in a .h file
typedef struct PJconsts {
XY (*fwd)(LP, struct PJconsts *);
LP (*inv)(XY, struct PJconsts *);
void (*spc)(LP, struct PJconsts *, struct FACTORS *);
void (*pfree)(struct PJconsts *);
const char *descr;
paralist *params; /* parameter list */
int over; /* over-range flag */
int geoc; /* geocentric latitude flag */
int is_latlong; /* proj=latlong ... not really a projection at all */
int is_geocent; /* proj=geocent ... not really a projection at all */
double
a, /* major axis or radius if es==0 */
e, /* eccentricity */
es, /* e ^ 2 */
ra, /* 1/A */
one_es, /* 1 - e^2 */
rone_es, /* 1/one_es */
lam0, phi0, /* central longitude, latitude */
x0, y0, /* easting and northing */
k0, /* general scaling factor */
to_meter, fr_meter; /* cartesian scaling */
int datum_type; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */
double datum_params[7];
double from_greenwich; /* prime meridian offset (in radians) */
#ifdef PROJ_PARMS__
PROJ_PARMS__
#endif /* end of optional extensions */
} PJ;
I understand that I need to use DLLImport to import the function and [ StructLayout( LayoutKind.Sequential )] to create a clss representing the struct, but I'm clueless on the first 4 lines in the struct above:
XY (*fwd)(LP, struct PJconsts *);
LP (*inv)(XY, struct PJconsts *);
void (*spc)(LP, struct PJconsts *, struct FACTORS *);
void (*pfree)(struct PJconsts *);
XY and LP are simple structs
typedef struct { double x, y; } XY;
typedef struct { double lam, phi; } LP;
Any ideas?
Thanks,
sam
|
|
|
|
|
The XY and LP structs are easy:
[StructLayout(LayoutKind.Sequential)]
public struct XY
{
public double x;
public double y;
}
[StructLayout(LayoutKind.Sequential)]
public struct LP
{
public double lam;
public double phi;
} If you look at the PJconsts struct, though, it's actually being used as a class (possible in C++). You should instead define this as a class, keeping in mind that anything declared as a class is a reference Type already, so you don't need a pointer to it. If you need to pass a reference to a value type (like struct s, for example), use either the out or ref keyword, depending on whether or not the param is defined as [out] or [in,out] respectively.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Yeah XY and LP are easy, my problem is the PJconsts struct..... which is really the PJ struct, I think the PJconsts is some type of C label, while PJ is the actual name. This thread http://forums.devshed.com/archive/42/2003/9/1/80923 talks a bit about it...
and what is the deal with the first 4 lines of the struct.....
|
|
|
|
|
They're method declarations, which is why I was saying that this could be better suited for a class. This was a way in C to declare class-like entities.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
XY (*fwd)(LP, struct PJconsts *);
LP (*inv)(XY, struct PJconsts *);
void (*spc)(LP, struct PJconsts *, struct FACTORS *);
void (*pfree)(struct PJconsts *);
Obviously, we dealing with function pointers here, aka CALLBACK. You can safely use static delegate instances for this. I'm not sure about returning those structs, marshalling could give you either a pointer or a value, you will just have to try.
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
I'm still having problems with the marshalling
I get an exception "Can not marshal field param of type ProjWrapper.PJ: The type definition of this field has no layout information."
I have tagged it with Layout.Sequential
public delegate XY fwd(LP lp, PJ pj); <br />
<br />
[StructLayout(LayoutKind.Sequential)]<br />
public class PJ<br />
{<br />
fwd fwdcallback;<br />
}
Could the problem be in the return Marshal of the PJ class, or am I messing up the callback definitions still
Thank you very much for your help....
-Sam
|
|
|
|
|
sammyh wrote:
fwd fwdcallback;
//etc
Somewhere after the //etc is the error
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
alright... progress, seems to be working
The last 2 hurdles
First I was doing this
[StructLayout(LayoutKind.Sequential)]<br />
public class paralist <br />
{<br />
paralist next;<br />
char used;<br />
char param; <br />
}
when it likes this better
[StructLayout(LayoutKind.Sequential)]<br />
public unsafe class paralist <br />
{<br />
paralist *next;<br />
char used;<br />
char param; <br />
}
Second, I had to replace
fwd fwdcallback;
with
int fwdcallback;
Thanks again.
|
|
|
|
|
i downloaded and installed the directx sdk. how do i use it in my project? the microsoft.directx namespace isn't available and i can't figure out to add a refernce to it.
what am i missing?
thanks
|
|
|
|
|
You should start by opening some samples and playing with them...
If everything is installed right, you should just be able to click Project->Add Reference, and they should be under the .NET tab.
The dlls are in C:\WINDOWS\Microsoft.NET\Managed DirectX if you need to do a direct reference
|
|
|
|
|
Did you install the Summer 2003 update or an older one? They all install a little differently.
For starters, the Microsoft.DirectX namespaces aren't available until the assembly that declares them is referenced. To reference these, first try installing the managed extensions (one one of the installations, these weren't installed while installing the SDK - don't remember which, though) from DXSDKDIR\Developer Runtime\Managed DirectX then from either the Debug or Retail directory. Start VS.NET and you should see the DirectX managed assemblies in the list now.
If you don't, find the location of the installed libraries (like %WINDIR%\Microsoft.NET\Managed DirectX\v9.00.1126) and add the path to the HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders registry key using regedit.exe.
I've installed three or four different versions / updates since the first managed assemblies were released over a short period of time to, unfortunately, I can't remember how they all behaved during installation. The directions above should do the trick, though.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|