|
I hoop so but do you know any way to stor the bitmap in the display card memory for improve the appliaction performance ???
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
mhmoud rawas wrote:
do you know any way to stor the bitmap in the display card memory
There might be some way, but it won't be easy, you won't be able to do it from C#, and there's no need to do that. The CachedBitmap doesn't do this - it just creates a bitmap that's optimized for the current display settings.
|
|
|
|
|
So in your oppenion what is the way to accelerate the drawing method in C# if you have an application which draw a large bitmap on mouse movement (Some thing like paning in the graphics application) and so we have to be carefull while dealing with large bitmaps cuz some times it takes'a large space in the memory espesialy while redrawing it
do you have a way to do that
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
in my windows application,i embeded a web browser,by this method we can show web component.But i want control this component such as draw to a new position.How can i do this.Help
|
|
|
|
|
I think you can create a solution consist's of web service project and control project which reference the web service project and get's the information you need from it every period of time try it ....
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
If you're hosting the IWebBrowser2 interface, you can use the MSHTML hosting interfaces like IDocHostUIHandler (see the PSDK for more details). This and several other hosting interfaces give you control over context menus, object placement and drawing, and much more functionality.
To implement IDocHostUIHandler (which pretty much sets everything else up), you must either redefine the interface in .NET (making sure to use the right GUID...or another technique which I'll link to later) and implement that on your class. You can QI (or cast in .NET) the WebBrowser control (or an IHTMLDocument* interface) to ICustomDoc and call SetUIHandler , passing a reference to your implementation of IDocHostUIHandler (but that only lets you use UI customization methods), or implement IOleClientSite . The WebBrowser control will QI for this interface on the host (you) and make calls to the IDocHostUIHandler for all methods.
You can read more about hosting the WebBrowser control and MSHTML by looking at http://msdn.microsoft.com/workshop/browser/prog_browser_node_entry.asp[^].
-----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-----
|
|
|
|
|
Heath Stewart wrote:
You can QI (or cast in .NET) the WebBrowser control (or an IHTMLDocument* interface) to ICustomDoc and call SetUIHandler, passing a reference to your implementation of IDocHostUIHandler (but that only lets you use UI customization methods)
Just to give a quick example:
ICustomDoc cDoc = (ICustomDoc)webBrowser.Document;
cDoc.SetUIHandler((IDocHostUIHandler)this);
There's something I'd like to warn people about with the WebBrowser control. I replaced the default context menu for the WebBrowser, but whenever my context menu closed (after an item was clicked), the next item on the default context menu was executed, even though it never appeared. I was just about at my wit's end when I realized that the context menu must be sending something back to the window it was shown on behalf of - the WebBrowser control - and it was executing the default menu's commands. Changing the window passed into the context menu to the form instead of the WebBrowser solved the problem.
|
|
|
|
|
Oh, about those other links: rather than manually defining all the interfaces, you can use a technique that described in this article: http://www.codeproject.com/csharp/advhost.asp[^]
You create an IDL file (used in COM programming) to forward-define interfaces and compile that to a typelib (TLB). Then you use the tlbimp.exe utility in the .NET SDK to create an interop assembly out of that. Now you're got your interfaces defined correctly and just have to implement them! A word of caution, though: all the methods return void . Some methods require that you return S_FALSE in COM, which is still a success code. Since the return type is void , you can't return anything and you can't use a COMException because that creates an error state. In these cases, you will have to define the interface yourself and for those methods make them return an int and add the PreserveSignature=true property statement to the MarshalAsAttribute that you must add to the method.
Also, another helpful article here on CP is a book excerpt: http://www.codeproject.com/books/0764549146_8.asp[^]
These are both pretty good, but I still recommend you read that link I gave you to MSDN. It's the best way to learn about hosting the WebBrowser control or MSHTML.
-----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-----
|
|
|
|
|
Heath Stewart wrote:
A word of caution, though: all the methods return void. Some methods require that you return S_FALSE in COM, which is still a success code. Since the return type is void, you can't return anything and you can't use a COMException because that creates an error state.
Actually, I've successfully done this in the IDocHostUIHandler.TranslateAccelerator method. The way I know I was successful is that it no longer "ate" all keyboad messages that were sent to the WebBrowser control. But yes, it's better to re-define the interface.
throw new System.Runtime.InteropServices.COMException("S_CANCEL - No custom handling",1);
|
|
|
|
|
COM+ Transaction 70-320 exam question
[Transaction(TransactionOption.Required)]
[SecurityRole("Admin")]
public class SalesProcessor
{
public void PlaceOrder()
{
//STEP 1: Code here to insert order to order table, calling method on another COM+ component participating in the transaction.
objCOM1.InsertOrder(...);
//STEP 2: Code here to update shipping table. Again, calling method on a second COM+ component participating in the transaction.
objCOM2.UpdateShipping(...);
}
}
The question is, what do you need to add in order for the transaction initiated by PlaceOrder to be executed properly. You options are:
a. Add [AutoComplete(true)] to PlaceOrder
b. Add EnableCommit( ) to "End" of PlaceOrder method.
c. ... not viable option ...
d. ... not viable option ...
The model answer is "EnableCommit" (That's option *b*). But I don't understand why. I never used EnableCommit( ) before, never had to. If I don't use [AutoComplete(true)] to automatically call SetComplete and SetAbort, I'd do it manually:
public void PlaceOrder()
{
ContextUtil.EnableCommit( ); //Is this how you use EnableCommit()? But "option b" suggested that it should be added at the END of the method after the processing... That's weird.
try
{
objCOM1.InsertOrder(...);
objCOM2.UpdateShipping(...);
ContextUtil.SetComplete(...);
}
catch(Exception er)
{
... exception prcessing ...
ContextUtil.SetAbort( );
}
}
Otherwise, [AutoComplete(true)] would do the job:
[AutoComplete(true)]
public void PlaceOrder()
{
objCOM1.InsertOrder(...);
objCOM2.UpdateShipping(...);
}
Thanks.
|
|
|
|
|
I have a WEB form associated to a C#. One of my issues is to show a file Dialog for choosing a file and process it.
How can I get this using a Web Development? In Windows forms it is clear.
|
|
|
|
|
Use the <input type="file"> tag in your ASPX page (or other HTML file). Then read the .NET SDK Documentation about HttpRequest.Files . That gives you a collection of HttpPostedFile objects that you can save to disk. It's a nice little wrapper but isn't necessary if you don't want to use it. All form data is passed as "multipart/form-data" so it's just a matter of handling multiple segments in a MIME document. I'd recommend the wrapper classes, though - they make it much easier.
-----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 have a strange problem, one thread's ThreadState could not be changed to Stopped after it runs all codes of Catch codes. But this error only occurs once in more than 5 times running. Who can explain the reason? thanks
|
|
|
|
|
Can you provide us with a sample which produce that problem
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
The following is part of my code, one of the thread[]'s ThreadState is always Running. This may occurs once when the program runs more than 5 times
private void monitorThread()
{
while(!endFlag)
{
bool flag = false;
Thread.Sleep(100);
if(groupID == maxKey)
{
for(int i = 0;i < threadNum;i ++)
{
//the program will loop to check if thread[] all stopped
flag = flag || thread[i].IsAlive;
}
if(!flag)
endFlag = true;
}
for(int i = 0;i < threadNum;i ++)
{
if(!thread[i].IsAlive && (groupID < maxKey))
{
thread[i] = new Thread(new ThreadStart(singleThread));
thread[i].IsBackground = true;
thread[i].Start();
}
}
}
private void singleThread()
{
...
catch(ThreadAbortException)
{
closeDataSource(connSrc,connODBCSrc,connDest,connODBCDest,csSrc,csDest);
}
catch(Exception ex)
{
closeDataSource(connSrc,connODBCSrc,connDest,connODBCDest,csSrc,csDest);
...
}
}
|
|
|
|
|
Hi I'm building a program that executes net send commands for lan use. An I was wondering howto format the message so it comes out multiline.
If you have any ideas on howto do this please help
btw I've already tried \n and \r\n
Help is greatly appreciated
|
|
|
|
|
I think its something like system.environment.newline
|
|
|
|
|
Ok maybe I should rephrase my question I am not using .NET to directly send the messages I am building a .bat file then executing it. SO what would the DOS cmd for doing multiline net send commands be.
Help is greatly appreciated
|
|
|
|
|
Then why did you post the C# forum?! What are we supposed to think?
Escaping characters in batch files isn't supported, nor are new lines.
-----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-----
|
|
|
|
|
Because I am creating the batch file using .NET and I wasn't sure if .NET does some wierd formatting.
|
|
|
|
|
What exactly is a .NET batch file?
|
|
|
|
|
You should use either Environment.NewLine or use a a string literal (beings with "@" where new lines and tabs are part of the string until closed):
using System;
using System.Diagnostics;
public class MsgTest
{
public static void Main()
{
string example = @"This is a test
on a new line.";
ProcessStartInfo psi = new ProcessStartInfo("net.exe",
string.Concat("send ppheath ", example));
Process.Start(psi);
}
} You could also P/Invoke the NetMessageBufferSend function. You can read more about it in the Platform SDK (Network Management, or on MSDN). It isn't hard to invoke and is pretty easy to use. Read the messaging overview link for it, 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-----
|
|
|
|
|
Thanks so much for helpful and articulate response I will try that. =)
|
|
|
|
|
That works but only for one person... But whenever I send it to multiple users via the PIPE "|" symbol it doesn't compute the the rest of the commands because they are put on as arguments. But when I do the batch file it doesn't do the multiline messaging so I'm stumped.
Please Help
|
|
|
|
|
This is just a problem of parsing command line arguments in your program. If you're sending to multiple people, then loop through the list of people and execute the command for each one.
-----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-----
|
|
|
|