.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

How does DllImportAttribute.PreserveSig handle modified signatures?

Posted By:      Posted Date: October 27, 2010    Points: 0   Category :.NET Framework

It seems the DllImportAttribute.PreserveSig attribute is capable of changing the way developers would usually define the signature of a pinvoke function, for example:


[DllImport("dwmapi.dll", PreserveSig = false)]

[return: MarshalAs(UnmanagedType.Bool)]

public static extern bool DwmIsCompositionEnabled();


Should be declared as follows:



public static extern uint DwmIsCompositionEnabled(out bool pfEnabled);


However both signatures work (unexpectedly) contrary to how most developers would define the pinvoke function.


For example the IRunningObjectTable.Register function (as defined in System.Runtime.InteropServices.ComTypes):

int Register(RegistrationFlags grfFlags, [MarshalAs(UnmanagedType.Interface)] object punkObject, IMoniker pmkObjectName);


would normally be defined:  

void Register(RegistrationFlags grfFlags, [MarshalAs(UnmanagedType.Interface)] object punkObject, IMoniker pmkObjectName, out int pdwRegister);


You can see the BCL version of the IRunningObjectTable.Register function is returning the last

View Complete Post

More Related Resource Links

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>)


Hey guys

I came across this bug using while trying to implement a sitemap

Line 147:						Panel panel = new Panel();
Line 148:						panel.Controls.Add(_viewState);
Line 149:						Page.Form.Controls.Add(panel);
Line 150:						string script = "document.getElementById('" + _viewState.ClientID + "').value = GetViewState__AspNetTreeView('" + Extender.MakeChildId("UL") + "');";
Line 151:						Page.ClientScript.RegisterOnSubmitStatement(typeof(TreeViewAdapter), _viewState.ClientID, script);

[HttpException (0x80004005): The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).]
   System.Web.UI.ControlCollection.Add(Control child) +8696951
   CSSFriendly.TreeViewAdapter.SaveAdapterViewState() in E:\wwwroot\ThirdParty\CSSFriendly\CSSFriendly_24242\CSSFriendly\TreeViewAdapter.cs:149
   System.Web.UI.Control.SaveViewStateRecursive(ViewStateMode inheritedMode) +8901848
   System.Web.UI.Control.SaveViewStateRecursive(ViewStateMode inheritedMode) +148
   System.Web.UI.Control.SaveViewStateRecursive(ViewStateMode inheritedMode) +148
   System.Web.UI.Control.SaveViewStateRecursive(ViewStateMode inheritedMode) +148

Digital Signatures: Application Guidelines on Digital Signature Practices for Common Criteria Securi


This article is an overview of digital signature practices and user considerations necessary to write applications in compliance with ISO/IEC 15408 Common Criteria security. Signing categories are described, including those that are a potential risk to the implied trust association that goes with a digital signature.

Jack Davis

MSDN Magazine November 2009

Transactions: Build Scalable Systems That Handle Failure Without Losing Data


Systems that handle failure without losing data are elusive. Learn how to achieve systems that are both scalable and robust.

Udi Dahan

MSDN Magazine July 2008

CLR Inside Out: Using Strong Name Signatures


Strong name signatures (and signing in general) are a key facet of Microsoft® . NET Framework security. But regardless of how well designed . NET signatures may be, they won't offer the maximum benefit if you don't know how to use them properly.

Mike Downen

MSDN Magazine July 2006

Trustworthy Code: Exchange Data More Securely with XML Signatures and Encryption


You can sign any kind of data using XML Signature, including part of an XML document, other XML documents, or other data of any format. However, in practice, XML signatures are most frequently used to sign other data represented in XML. In this article, the authors discuss the new standard and how you can benefit from it in your apps.

Mike Downen and Shawn Farkas

MSDN Magazine November 2004

C++ Q&A: Finding a Win32 Handle, HTML in CHtmlCtrl


This month Paul DiLascia discusses how to find windows with GetLastChild and outputting HTML with a C++ procedure equivalent to document.write.

Paul DiLascia

MSDN Magazine August 2003

COM: Handle Late-bound Events within Visual Basic Using an ATL Bridge


Since a Visual Basic client doesn't handle events directly from late-bound COM objects, it needs some way to capture all the events and parameters launched by any COM object server instantiated at runtime and not known at design time. This article explains how to build a bridge component that does just that. The bridge component transmits the intercepted event data back to the Visual Basic client using another supporting COM object that is capable of holding event data and attributes. The Visual Basic client receives the notification from the bridge and extracts all the information relative to the event from the supporting object.

Carlo Randone

MSDN Magazine March 2001

How to handle Active and inactive items in the dropdownlist?


It is a general ASP.NET questions. Many times some items in dropdownlist will become inactive (retired)or active again. It is easy to handle in the new records which use only currently active items. But how to handle the inactive items which need to be used to show history records. It bothered me a long time, not sure how to solve this problem efficiently.


Multiple forms on the same page MVC2: how to handle (including validation from model)



It should be simple; although I'm having a hard time to figure out the best way to do it. I've MVC2 pages with multiple forms on the same page having different functionalities.

What's the best way to handle this; including the MVC2 way of validation from the model?


Digital Signatures Verification Error


Hey all;


Not 100% sure this is a sharepoint problem, but maybe someone can help.  I am installing a digital signature block that is being made available on a browser form.  The sig is working, but I can not get a valid signature on the form.  I am told there is a Digital Signatures Verification Error. 


Reading other posts tells me that I have to have my signature cert in the trusted Root authority of the sharepoint server.  Here is the rub..


When I use certificate manager, I s

Info Path form when modified by using UTF-8 encoding having issues with existing 'iso-8859-1' char



I am modifying the infio path form 2007 from my state machine workflow to constantly update the status fields in the request form.

below is the method i created for the same..

private void updateInfoPathRequestForm(string xpathNode, string nodeValue)
            SPUserToken token = workflowProperties.Web.CurrentUser.UserToken;
            using (SPSite _site = new SPSite(workflowProperties.Site.ID, token))
                _site.AllowUnsafeUpdates = true;
                using (SPWeb _web = _site.OpenWeb(workflowProperties.Web.ID))
                    SPListItem item = _web.Lists[workflowProperties.List.ID].Items[workflowProperties.Item.UniqueId];

This page has been modified

I have a spin on a well documented problem.  I have several sub sites that have this issue.  Quite often when a new list item is being created, the person clicks new, types in some text and then clicks OK, they get an error that says "This Page has been modified since you opened it. You must open the page again."  If you click back and click OK again you get the same error.  You have to cancel and click new again to get around it.  This doesn't always happen, I'd say about 20% of the time.

This is not on a new page, not adding a webpart, not editing a content editor.  This is a brand new task in a task list.
This will also happen when an item is being edited.  A task is edited, click OK, get the error saying it has changed.  No other person is using the list. Again this doesn't always happen.

Any ideas?

Modified column missing when sorting


I resently updated few document libraries on my sharepoint site.  What I did I removed "Content approval" from those libraries and now my modified and created columns are missing from the columns of the list (appear to be hidden ).  So, I need to be able to sort by these columns and I have seen many people asking about this same question but I haven't found any answer to this issue.  The columns are still there but I they dont show up in the columns of the library.  I can still create a view with this columns but i cant sort by them.

Is this a bug or is there a reason why sharepoint does this? 


jQuery modified ListBox not posting back modified values


Hi everyone,

I have an ASP.Net ListBox that I'm trying to populate via jQuery, using the following snippet:

        $("#MyList_btnAddAll").click(function(e) {
        $('#MyList_lstAll option').appendTo('#MyList_lstSelected');

The code has two ListBoxes in fact, one a "source" and the other a "destination".  As you can tell above the ListBoxes are MyList_lstAll and MyList_lstSelected.  These are rendered in the browser as <select> elements, as you'd expect.

The jQuery is working great, the items are moving from one ListBox to the other, the DOM is updated but when I submit this form (not using jQuery), the ListBoxes don't reflect this change on postback. 

I realize my modifications via jQuery aren't available in ViewState but I thought since the DOM was updated these changes would be part of the postback data?  But in the codebehind after postback the ListBox contents haven't changed.  Does anyone know what might be going on and what I can do about it?  Many thanks.

Timeout Property, how do i handle timeout


iam using technique mentioned in this tutorial

i also added this AsyncTimeout="300" in page element


the query is correct, how do i handle timeout

Error in: searchresumes.aspx

searchquery was countryid=1 and hide='N' and stateid='34' and cityid='347' and industryid='7' and jobcategoryid='3' and totalexp>=0 and totalexp<=1 and CONTAINS(entirecv, '"Freshers" or "call+center" or "bpo" or "kpo"')

- Hide quoted text -

Error Message: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Stack Trace:
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavi
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend