|
Eeeek Mon!,
I'm trying to use the following function from the WinInet API in order to read an "Internet Settings" setting (IE) for "Check for newer versions of stored pages"
BOOL InternetQueryOption( HINTERNET hInternet,
DWORD dwOption,
LPVOID lpBuffer,
LPDWORD lpdwBufferLength
);
So I try dis in c#...
[DllImport("Wininet.dll")]
public static extern int InternetQueryOption (IntPtr hInternet, int dwOption, char[] lpBuffer, int lpdwBufferLength );
public static char[] getInfo2(){
char[] buffer=null;
int iLen = 0;
int iRet = InternetQueryOption (IntPtr.Zero,INTERNET_OPTION_END_BROWSER_SESSION, null, iLen);
buffer= new char[iLen];
int iRet2 = InternetQueryOption(IntPtr.Zero,INTERNET_OPTION_END_BROWSER_SESSION, buffer, iLen);
return buffer;
}
}
Calling it 1st time for size and 2nd time to fill in 'buffer');
It compiles/runs but gives me back nothing.
Help mi mon!
Yo help appreciated mon!
|
|
|
|
|
Should it be defined as:
[DllImport("Wininet.dll")]
public static extern int InternetQueryOption (IntPtr hInternet, int dwOption, IntPtr buffer, ref int dwBufferLength );
store your internet favourites online - www.my-faves.co.uk
|
|
|
|
|
But then how do I use IntPtr to get a value back? I need the value of buffer.
|
|
|
|
|
Hello
I'm trying to create a 2D game with Managed Direct3D 9.
I've got Sprite and Texture variables, and I set the screen to full screen mode with 800*600 resolution.
I was trying to put a background image, and for some reason- it changes the size of the image I load!
I wanted to put a 800*600 image, and it wasn't shown right.
I made the program print it's size, and it was 1024*1024!
How is that possible? why did it happen?
And how can I fix it..?
thanks 
|
|
|
|
|
I don't know, but I am finishing development of a Jukebox program using DX9, and I can tell you that the audio video playback component of managed DX is a total shambles. Sounds like the disease is spreading.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
That's just great... :\
Thanks for the information.
I've heard somewhere that textures' size have to be 2 power x (4, 16, 32, 64 etc.. in case I dodn't write it correctly), and that's why it happens..
Does anyone know how can I display pictures using Direct3D without using textures?
thanks ..
|
|
|
|
|
Actually, I might be able to help there. A DirectX9 video object will happily read an image file, so I presume that playing it will display the image. A video object shows the last frame of a video until it gets changed or hidden, and they can definately be used to show video as a texture, so perhaps that will solve the problem ?
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Thanks!
This sounds pretty good; though in order to make it work as a game, I have to show several images at the same time, some of them above others, and all of that in full screen mode.
Can it be done with video objects?
|
|
|
|
|
As far as I am aware, the video is used as a texture, there's no difference to any other texture.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Hey did you finish your article about this? I've used AudioVideoPlayback for some music and noticed some serious bugs (random crashing if Audio.Ending event is setup, not hearing any sound on certain 320kbps mp3 files, just to name a few), so I'm curious to know what other issues may be lurking for me.
Judah Himango
|
|
|
|
|
I'm working on it. I found that if you use the ending method as well of setting up your own, you can get crashes deep in DX if you change the object, and then the event fires. If you don't use the Ending event, I've found it to be pretty solid. I'm a bit worried about the no sound bug though, I've not seen that one.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Yeah I ended up using a timer and doing a manual "ending" event, seems to work pretty well.
About the 320kbps no sound problem...no sound plays unless I skip ahead or backward and then continue playing. I can duplicate it consistently by playing one particular 320kbps song (though I see it with many others), you might wanna try it on your machine using AudioVideoPlayback, you can download the song from here.
Judah Himango
|
|
|
|
|
Thanks a ton. I need to seriously look at this, it sounds like a problem in my code waiting to happen. I wonder why DX9 is so crap ?
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
Hi!
How can I find e.g. the 4th root of a number in c#?? are there any functions or should I write a function by myself??
mfg
harrior
|
|
|
|
|
Math.Pow(x,y)
To get a square root, y=0.5
To get a cubed root, y=0.33333
To get a 4th root, y=0.25
...and so on.
"If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell
Not getting the response you want from a question asked in an online forum: How to Ask Questions the Smart Way!
|
|
|
|
|
Thx! Why didn't I think about fractions as exponents... *grml* 
|
|
|
|
|
I have written a custom control which has its default constructor set as Private, to force the use of one of the other contsructors with args. This all works fine until you visit the GUI designer and then the code in the private void InitializeComponent() is replaced with code to instantiate my control object using the default constructor i.e. no args. How can I stop the GUI designer from overwriting the code line already enterred?
|
|
|
|
|
Read Enhancing Design-Time Support[^] about how to use UITypeEditor s, TypeConverter s, and more (like the CodeDomSerializer ) to enhance the design-time control over your component.
IIRC, however, the designer requires a default constructor becuase it handles instantiation of certain controls (i.e., the ones you dropped onto the surface). Those controls can further use the CodeDomSerializer (see the DesignerSerializerAttribute documentation) to serialize code that they use (like style objects)) and control how they interact with the designer, but the default constructor is serialized by the designer (ex: Visual Studio) itself.
Consider another approach, however. The designer supports the ISupportInitialize interface. Implement that interface on your component. By the time EndInit is called, a property (that you're currently implementing through a constructor parameter) better be set or you throw the appropriate exception. That's actually a more common approach (but you can implement and use the ISupportInitialize for other purposes as well).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles]
|
|
|
|
|
Hi Sameer,
There is rowchange event which fires when ever a row changes. Probably you can try that.
regards
Jo
|
|
|
|
|
Hi,
I'm trying to provide the user of my class access to the objects in a collection without allowing him to modify (add/remove/clear items) the collection. I thought I can do it by providing a IEnumerator. But this thingy can't be used directly, as shown in the code below. How can this be done?
Thanks in advance.
Matthias
Here the test I tried:
using System;
using System.Collections;
using System.Collections;
public class MyClass
{
public static void Main()
{
string s1 = "Hello";
string s2 = "World!";
a.Add(s1);
a.Add(s2);
foreach (String s in GetEnumerator())
Console.WriteLine(s);
}
private static IEnumerator GetEnumerator() {
return a.GetEnumerator();
}
private static ArrayList a = new ArrayList();
}
If eell I ,nust draw to your atenttion to het fakt that I can splel perfrectly well - i;ts my typeying that sukcs.
(Lounge/David Wulff)
www.emvoid.de
|
|
|
|
|
hi,
Your idea is good but your code block is not enough to support your requirement.
This IEnumerable interface have only one abstract method called GetEnumerator. This GetEnumerator will return an interface called IEnumerator. This IEnumerator interface containe two abstract methods and a property. MoveNext(),Reset() and a property called Current.
To achive your need you can define the methods and property like below.
public void Reset()
{
}
public bool MoveNext()
{
}
public object Current
{
get
{
}
}
This is the basic idea.
What you are doing is not sufficient to achive that. That's why you are getting an error message like.
"foreach statement cannot operate on variables of type 'System.Collections.IEnumerator' because 'System.Collections.IEnumerator' does not contain a definition for 'GetEnumerator', or it is inaccessible
"
**************************
S r e e j i t h N a i r
**************************
|
|
|
|
|
Ok, in a DS i have a ID coulmn which is set to autoincrement. I do something like this
this._dsSomething.Tables["something"].Rows.Add( ItemArray );
Well this causes the autoincrement column to increment to something. Well I need to access that row bases oin this id index. So, how do i access the autoIncrementCurrent property of this column. Or better yet is there a easy simple way of accessing the current row the datatable is working with.
Sameer
|
|
|
|
|
Hi all,
I created a custom user contols which accepts some parameters and fetches records to a datagrid and display it.
The problem is:
Now i need to pass a dynamic variable say I need to pass it like this;
<dgf:ucontrol param1="<%=qryData%>" param2="Hello">
But this doesn't work and it says invalid syntax near "<".
Please help
Thanks in advance,
|
|
|
|
|
This really belongs in the ASP.NET forum, but more than likely you need to escape < with <.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles]
|
|
|
|
|
I need some help with updating bookmarks in a Word 2002 document using a C# app. I'm new to all of this so if I haven't provided you enough info just let me know.
private void BookMarkReplaceRange(string bookmarkName, string newText)
{
object missingValue = Type.Missing;
object oBookmarkName = bookmarkName;
Word.Range rng = oDoc.Bookmarks.get_Item (refBookmarkName).Range;
rng.Text = newText;
object oRng = rng;
oDoc.Bookmarks.Add(bookmarkName, ref oRng);
}
//calling it with:
BookMarkReplaceRange("ptname","txtLName");
The code builds fine and when I run it it will run fine until it starts running the range code. When the document is displayed it has "bookmark not defined" in place of where the bookmark text should be. I'm getting an error at
Word.Range rng = oDoc.Bookmarks.get_Item(refoBookmarkName).Range;
object reference not set to an instance of object.
|
|
|
|