我正在尝试调用OpenThemeData(参见msdn OpenThemeData)函数,但我无法确定pszClassList参数传递的可接受的类名是什么.
HTHEME OpenThemeData(
HWND hwnd,
LPCWSTR pszClassList
);
Run Code Online (Sandbox Code Playgroud)
有谁能告诉我可以传递给该参数的可接受的类名是什么?谢谢!
在.NET Framework中使用字符串的最佳实践中,OrdinalIgnoreCase建议将StringComparison 用于不区分大小写的文件路径.(我们称之为声明A.)
我同意这一点,因为我可以在同一目录中创建两个文件:
é.txt
e?.txt
Run Code Online (Sandbox Code Playgroud)
它们的文件名不一样,第二个是由e和修饰符组成的,所以它实际上有两个字母.(您可以尝试使用复制粘贴.)
如果有不变的文化比较(而不是序数比较),NTFS将不允许这些文件,因为在他们解释的同一篇文章中,在不变的文化中 a + ? = å
但在文章中String.ToUpperInvariant()有不同的建议:(声明B.)
如果需要操作系统标识符的小写或大写版本(例如文件名,命名管道或注册表项),请使用ToLowerInvariant或ToUpperInvariant方法.
我需要创建文件路径集合(实际上HashSet)来检测重复项.因此,如果创建地图的时候,我会服从声明B,我可以误报结束,因为上述文件名é.txt和e?.txt将被视为一个.我是否正确理解MSDN中的语句B具有误导性?或者我错过了什么?
我即将建立一个库,最好从开始时没有已知的错误,所以我根本不想忽略这一点.
更新:
语句B似乎还有一个问题:ToLowerInvariant()无法实际使用.原因(我引用的最佳实践的文章):DO: Use ToUpperInvariant rather than ToLowerInvariant when normalizing strings for comparison.实际的理由: There is a small range of characters that do not roundtrip, and going to lowercase will make these characters unavailable.(源)
我一直在努力了解Process.MainWindowHandle.
根据MSDN; "主窗口是在进程启动时创建的窗口.初始化后,可以打开其他窗口,包括Modal和TopLevel窗口,但与进程关联的第一个窗口仍然是主窗口." (重点补充)
但是在调试时我注意到MainWindowHandle似乎改变了价值......这是我没想到的,特别是在查阅上面的文档之后.
为了确认行为,我创建了一个带有计时器的独立WinForms应用程序,每隔100ms检查一次"DEVENV"(Visual Studio)进程的MainWindowHandle.
这是这个测试应用的有趣部分......
IntPtr oldHWnd = IntPtr.Zero;
void GetMainwindowHandle()
{
Process[] processes = Process.GetProcessesByName("DEVENV");
if (processes.Length!=1)
return;
IntPtr newHWnd = processes[0].MainWindowHandle;
if (newHWnd != oldHWnd)
{
oldHWnd = newHWnd;
textBox1.AppendText(processes[0].MainWindowHandle.ToString("X")+"\r\n");
}
}
private void timer1Tick(object sender, EventArgs e)
{
GetMainwindowHandle();
}
Run Code Online (Sandbox Code Playgroud)
当您(例如)单击VS内的下拉菜单时,您可以看到MainWindowHandle的值发生变化.

也许我误解了文档.
谁能摆脱光明?
我很肯定这本指南存在,但我今天的Google技能似乎已被打破.你能告诉我指向该部分的MSDN的链接吗?
有没有办法在Firefox中获得MSDN搜索栏,它将自动完成.Net类和成员名称(最好也是Win32 API方法)并直接带我到MSDN页面?
使用Shift + Enter的Google工具栏(我很幸运)通常会直接转到.Net类的msdn页面,但它没有目标自动完成功能.此外,由于我懒得键入site:msdn.microsoft.com,它并不总是把我带到MSDN.(例如Graphics)
给出类似于这样的类的XML注释:
///<summary>Handles the AuthenticateRequest event in the ASP.NET page request lifecycle to authenticate users.</summary>
///<remarks>
///<para>This module will authenticate users based on cookies, form posts, or an impersonation request from the admin system.</para>
///<para>If authentication succeeds, both the <see cref="System.Threading.Thread.CurrentPrincipal" /> and the <see cref="System.Web.HttpContext.User"/> property are set to an instance of <see cref="MyPrincipal"/> representing the authenticated user.</para>
///</remarks>
Run Code Online (Sandbox Code Playgroud)
如何获取对框架文档中相应页面的引用System.Threading.Thread.CurrentPrincipal和System.Web.HttpContext.User链接?
我正在研究媒体源扩展,以无缝循环播放视频,没有任何延迟。我对它进行了广泛的研发,也做了不同的事情。现在我正在处理这段代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<video controls></video>
<script>
var video = document.querySelector('video');
var assetURL = 'test1.mp4';
// Need to be specific for Blink regarding codecs
// ./mp4info frag_bunny.mp4 | grep Codec
var mimeCodec = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"';
if ('MediaSource' in window && MediaSource.isTypeSupported(mimeCodec)) {
var mediaSource = new MediaSource;
//console.log(mediaSource.readyState); // closed
video.src = URL.createObjectURL(mediaSource);
mediaSource.addEventListener('sourceopen', sourceOpen);
} else {
console.error('Unsupported MIME type or codec: ', mimeCodec);
}
function sourceOpen (_) {
//console.log(this.readyState); // open
var …Run Code Online (Sandbox Code Playgroud) 如果没有错误发生,任何人都可以准确指出MSDN所说的每个用户存储过程默认返回0吗?换句话说,在作为存储过程时,我可以确定下面给出的示例代码
IF someStatement
BEGIN
RETURN 1
END
Run Code Online (Sandbox Code Playgroud)
如果someStatement为false且没有错误发生,应该总是返回零?
我知道它实际上是这样工作的,但是我没有从微软那里找到任何明确的声明.
我是MSDN订阅者,开始涉及WPF,Web服务和SQL Server的个人项目.我打算使用我的MSDN优势来托管Azure上的Web服务和SQL Azure上的数据库.
我打算在我自己的开发机器上运行TFS,但随后听说了微软的Team Foundation Service云产品.此外,似乎我可以在Azure上运行我自己的TFS实例.此时我认为Team Foundation Service是最佳选择,因为:
有没有人在使用Team Foundation Service时遇到任何重大缺点,例如主要丧失灵活性或功能?
有时,当我按下F1Visual Studio代码编辑器时,它会打开带有.NET Micro Framework的MSDN页面的浏览器.我的项目使用的是.NET Framework 4.5,其中没有Micro Framework的痕迹.
例如F1,MulticastDelegate在我的代码编辑器中按下可打开此链接而不是此链接.
有人有同样的问题吗?
更新:
正如Jeff Braaten建议的那样,我检查了Debug帮助上下文,看起来很好.有上下文之间没有差别(除了关键字)Action和MulticastDelegate,例如.
同样告诉生成的URL For Action:
http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1
&l=EN-US&k=k(System.Action);
k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);
k(DevLang-csharp)&rd=true
Run Code Online (Sandbox Code Playgroud)
用于MulticastDelegate:
http://msdn.microsoft.com/query/dev11.query?appId=Dev11IDEF1
&l=EN-US&k=k(System.MulticastDelegate);
k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.5);
k(DevLang-csharp)&rd=true
Run Code Online (Sandbox Code Playgroud)
因此,最有可能的是,VS不是如何生成请求,而是MSDN搜索引擎如何解释它.
msdn ×10
.net ×3
azure ×1
azure-devops ×1
c# ×1
c++ ×1
firefox ×1
html ×1
javascript ×1
media-source ×1
mfc ×1
ndoc ×1
search ×1
sql-server ×1
string ×1
tfs ×1
themes ×1
toupper ×1
video ×1
winapi ×1