Computer Hope
Other => Other => Topic started by: Geek-9pm on November 06, 2009, 08:17:27 PM
-
So, how has Microsoft violated the Constitution?
That was not my question. I found it here somewhere in a thread about Linux.
Let's tank about it here. Or just ignore it. I wanted to know it anybody thins that is even near true. It is one thing to say they violated fair trade practices, -but violate the Constitution? :o
-
Yeah, right up there with Southern Fried Chicken ::)
-
Yeah, right up there with Southern Fried Chicken ::)
Isn't it Kentucky Fried Cchicken?
-
Nope.
Its Southern Fried Chicken
-
Nope.
Its Southern Fried Chicken
Never heard of it.
-
Go to Start/Run and type in sfc /scannow and you will have Chicken...
-
Go to Start/Run and type in sfc /scannow and you will have Chicken...
AMAZING! Virtual chicken!
-
No of
Never heard of it.
No offense kid, but you're 14. I'm going to guess there are a few things you haven't heard of ;D
And yes, that's jealousy of your age :(
-
No ofNo offense kid, but you're 14. I'm going to guess there are a few things you haven't heard of ;D
And yes, that's jealousy of your age :(
Is it only in America? Because we have KFC here in Canada.
-
Southern Fried Chicken is not a chain, it's a general term / description for preparing chicken a certain way (http://www.google.com/search?sourceid=navclient&ie=UTF-8&rlz=1T4GGLL_enUS304US305&q=southern+fried+chicken)
-
Ohh...I was under the impression it is a KFC competitor.
-
Southern Fried Chicken has been around for maybe a couple of hundred years and to a large degree it is what KFC copied for their product. SFC is usually home cooked but a lot of restaurants offer it also.
-
S F C
Is also a mnemonic used to teach computer repair. 8)
http://www.bucks.edu/~specpop/mnemonics.htm
-
Partially my fault too, but this thread got more off topic than any other I can remember without a bunch of flaming replies being involved.
I've heard a lot of nasty things said about MS but never heard of anyone suggesting that MS violated the Constitution.
-
I remember that the UK was doing some legal action because microsoft was forcing users to use IE at the beginning. After this was resolved, WIN7UK got canceled.
-
I remember that the UK was doing some legal action because microsoft was forcing users to use IE at the beginning. After this was resolved, WIN7UK got canceled.
I believe that was the EU.
The European Union is still upset that Microsoft Encarta refused to have more then a sentence or two about the possibilities of cuisine with frog legs or snails.
-
The European Union is still upset that Microsoft Encarta refused to have more then a sentence or two about the possibilities of cuisine with frog legs or snails.
Frog legs taste like chicken but without a ton of butter and garlic I shudder what snails would taste like.
-
Frog legs taste like chicken but without a ton of butter and garlic I shudder what snails would taste like.
On a cruise I tried some. Like rubber with garlic and butter.I did it voluntarily. I would hate to have someone tell me I can not choose. If MS had its way we would all have to eat Southern Fried Chicken, like it or not. No French cuisine.
The big crime MS did in Europe was getting rid of Digital Research in the DOS market. This paved the way for MS to later dominant the graphical interface de4sktop. Of course, there weer other factors. But DR was big in Europe at one time and MS wanted them out of the market. Whether or not DR tasted like garlic and butter was not the point. MS did not want the Europe market to be fair and open competition. The had used sales techniques that were unfair. It was documented.
Of course, that is all in the past. Nothing to worry about now. -Right?
How would you like your fried ch chicken?
Home or Ultimate?
-
Everybody is so anti-MS, claiming that they are out to make a buck, and don't want quality competition. I have a surprise for you - they are a corporation.
Name one corporation that has OUR best interests at heart. Come on, I dare you.
-
Everybody is so anti-MS, claiming that they are out to make a buck, and don't want quality competition. I have a surprise for you - they are a corporation.
Name one corporation that has OUR best interests at heart. Come on, I dare you.
Well, how much time do I have?
No, too hard. Instead I will enlarge your point.
No to go too far off the topic, but a recent item on the telly was on computer related security issue with the nations' power grid. The top guys from the Big Power companies lied to Congress. The told them they weer considering the security issue. Later they had to admit they did not do a thing. If half of this is true, the the biggest abuse of computer profit is not in Microsoft's Corporate structure. Rather, it is all the others who are in charge of more vital services.
Just imagine what it would be like if we had a major power outage in several large cites for two three weeks. That is the kind of risk Congress was finding in the investigation. It can be done with Trojans that get into the system that control the large turbines at the power houses. Think about it.
-
the Digital Research DOS was not MS-DOS. look at the system requirements for Windows 3.0 and 3.1.
MS-DOS or PC-DOS
While it's true that they might have gone out of their way to make windows not work with DR-DOS, if any change they could make makes windows not work on DR-DOS and still work on MS-DOS and PC-DOS it stands to reason that DR-DOS was not actually MS-DOS compatible.
I cannot find anything about this, nor had I really heard much about it until you brought it up last time. The main one I've heard was the 3.11 update breaking OS/2's ability to run windows within it. People blamed MS for purposefully changing windows dlls to break it.
What really happened was that IBM's method of hooking into windows was to use hard-coded function ordinals, in such a way that it guaranteed ANY change to the windows codebase would break the functionality.
In either case, the windows 3.1 detection logic was only present in the beta anyway (http://www.ddj.com/windows/184409070?pgno=4)
Certainly, it's true that DOS workalikes such as DR DOS have to pretend to be an older version of DOS (DOS 3.31, for instance) if they want to run Windows Enhanced mode. This is because of an undocumented interface shared by the Windows Enhanced mode DOSMGR virtual device driver (VxD) inside WIN386.EXE and MS-DOS 5 and 6. To appear as more recent versions of DOS, would-be clones must reverse-engineer and implement this undocumented protocol.
So whenever I've heard accusations that Microsoft practices so-called "cruel coding" to keep Windows from running on DR DOS, I look at the facts: Windows 3.1 Enhanced mode does run on DR DOS. Standard mode does not run, but that's because of a DR DOS bug acknowledged by Novell (see Undocumented DOS, Second Edition).
Even so, the AARD code is full of interesting tests. the article outlines these. All but the last one should be passed by any sufficient emulation of MS-DOS... it's the last test which sets it apart.
But it doesn't matter. the code is never executed in the retail version of windows 3.1, so again... not sure how that can affect DR-DOS users unless they like using pre-release pirated versions.
-
BC, I do not think everyone wants a rehash of the episode.
But hre are some details.
I bought a real Windows 3.1 and it did not want to install with DR DOS. It was NOT a beta. This 'fluke' was well-documented and it was not anything to do with fun tonality. It was a Hack in any sense of the word. It was hidden. No objective did it have but scare users away from DR DOS.
That was so long ago that the people have forgot. It was not a rumor. It was not a real software design thing. It was a hack to alter the marketplace. And it was so well documented that Microsoft did admit to it and claimed that it was the product of a single individual and put the blame on him. End of story.
So, then we are supposed to forget that, because Microsoft did not do it. Just some misguide hacker who managed to cripple the free market in Europe .
Let me know it you need the links that have this old story.
-
Yes, link me! :)
-
Linkages...Please.
-
This is old history. But if you want to, I will dig it up. You may find some of it in your library.
We are looking for more information on
DR-DOS,
Windwos 3.1
the AARD code
Graham Lea (Anti MS Author)
More recent article by Graham Lea.
http://www.theregister.co.uk/2000/11/28/ms_denies_everything_in_trial/
That bad things was in the beta of 3.1 is admitted.
But fake scare was in the retail version also.
Here is a starting point:
http://www.associatedcontent.com/article/1626398/the_microsoft_anti_microsoft_conundrum.html?cat=9
Some of the information is not presently online. I am checking this out now.
BTW, one of the Lawyers that was against Microsoft is now going after Google instead. Odd enough, seems that Google has purged some of the anti MS stuff from archives. I found a book article. More later.
-
the DDJ article was a lot more thorough then anything else I was able to find. It doesn't randomly conclude some anti-MS crap, and instead actually explores WHAT was in the code, and also explains how it is not active in the retail.
A monopoly means that they control the market. If they did, I doubt users would have the option of running Linux.
There was nothing stopping people from continuing to use DR.DOS if it was the case that they were actually affected by a piece of code that was explicitly skipped in the retail release; they could simply return their copy of windows 3.1. The fact that they would instead work to get windows 3.1 working attests to the fact that even in the case that it was a purposeful move by MS (which it would have been, again- if the code was actually enabled) The fact is, Windows 3.1 may not have technically been a operating system, it was treated as one. So when users of DR DOS had to choose between continuing to use DR-DOS and opting for windows 3.1 (which ideally would not be a mutually exclusive decision) the fact that they chose to use windows says a lot.
I will now humour your claim that the code was "enabled" and activated for you. While this is impossible as I look at the dissassembly, I will humour you.
About what? well, consider that, at the time, Windows was NOT the only desktop environment. DesqView ran perfectly fine under DR-DOS, as did the many other similar desktop environments. If windows 3.1 refused to run on DR-DOS, why did those users not then turn to an alternate vendor?
OS/2 was released at that time as well. why did nobody turn to OS/2 rather then use windows 3.1?
If the people using DR-DOS chose a non-MS DOS, why could they not choose a Non-MS GUI?
It wasn't the "AARD" code that was the issue. It was not. it was the fact that users still had a choice to NOT use windows 3.1, and they opted to use it. How is this MS's fault?
Generally this type of restriction would be considered bad for business, as the above scenario would play out as described- people would simply use an alternative. The reason it didn't happen here is simply because while people claim to vouch for the little guy, it's the exact opposite when it comes to purchasing software. Many people I know are the type who say negative stuff about Microsoft, security related or otherwise, and yet they can't seem to put their mouse where their mouth is and actually run a Non-microsoft OS.
Sure, it's because they aren't familar with anything else. That's beside the point. Microsoft didn't force schools and businesses to use versions of windows, and many Linux alternatives can even do the job better if properly configured for free or for a small support contract if preferred. These alternatives are not obscure by any means, so why do people choose big bad microsoft? If they hate it so much, why do they use it?
It's a load of non-sense. people say one thing, and do another, make one claim, and back it up with another, and it's utterly ridiculous. If Microsoft "sucked" so badly, nobody would be using it. This has nothing to do with market penetration as it does with people being both clueless and not bothered enough to do anything. basically, if Microsoft was so awful, then that move would have bankrupted them. the fact is the users chose not to use DR-DOS and instead chose to use windows, how this is somehow all because if Microsoft's big bad tactics and not related to user choice which was the deciding factor beats me.
Consider for a moment a similar scenario.
Let's say, MS office would refuse to install if you had, say, any part of OpenOffice installed. What would happen? Well, most people have already decided to use OO instead of MSOffice when they install it, so nothing happens.
Now let's assume, say- that you couldn't install apache or MySQL on any of the windows server machines. what would happen there? It depends, people could buy and install SQL Server, or they could get a copy of Linux for free, and install apache on that. How exactly Microsoft forcing this decision on people is a bad thing beats me.
Yes. the code is not necessary. Yes it is extra stuff, and it is absolutely unnecessary, and Windows 3.1 runs fine on DR-DOS.
But heres the thing- as I said- the people who then dumped DR-DOS CHOSE to do so. it was not a forced decision. they could have, as I said, used an alternative compatible user interface. but they did not.
If people had largely done this, would Microsoft been under scrutiny? they would have done the exact same thing they had before, but punishing somebody for effect rather then cause seems a bit uninsightful to me.
An good summary:
Windows user when their PC freezes:
Stupid windows! always freezing! Microsoft is crap and sucks! Now I'll never get this report finished while I play music and burn a CD all at once!
Linux User:
Hmm, interesting, a kernel panic. must be a hardware problem. guess I shouldn't try to play music and burn CDs while I'm working on it
The difference in attitude is astounding and prolific. Something bad happens on a PC running windows? Somehow, it's Microsoft's fault. Any other PC and the cause is elsewhere.
-
A monopoly means that they control the market. If they did, I doubt users would have the option of running Linux.
Stop the non sense, BC
-
Stop the non sense, BC
On the contrary, I have rarely met anyone as concise or as thoughtful as BC.
-
On January 9, 2000, Microsoft and Caldera announced that they had reached a settlement after a four-year antitrust legal battle. As a consulting expert to Caldera during its lawsuit against Microsoft, Andrew Schulman worked on some of the technical details of the case, which concerned Microsoft's use of Windows to protect MS-DOS while undermining DR DOS. However, because the case was recently settled out of court, valuable court documents could be sealed. Fortunately, there's still a valuable dossier online that offers insight into Caldera v. Microsoft, and the judge has ruled to unseal additional documents. The public can still inspect this case, and learn from this example how technical decisions are influenced by business and political interests. Schulman talks about what you'll find in this dossier, encouraging you to look deeper into matters that are still in dispute today.
http://www.oreillynet.com/network/2000/02/07/schulman.html
-
Just because one corporation that doesn't care about us little people settles out of court with another corporation that doesn't care about us doesn't make it right.
Is that even a sentence?
-
Just because one corporation that doesn't care about us little people settles out of court with another corporation that doesn't care about us doesn't make it right.
Is that even a sentence?
Exactly! A true statement. In the full article anyone can find the remark about how this case, Caldera vs Microsoft, ends ignoring the First Amendment of the U.S. Constitution. To see the remark from the Salt Lake Tribune, open the link and, in Firefox, use edit>find>Constitultion and it will take you to the bottom of the document. The point the author makes is that the settlement denies the public to know what really went on. But some of the e-mails for Gates an others were allowed to be unsealed and exposed to public view. we wonder what was in the documents that were not opened?
Yes, it did alter the market.
Now here is a photo of a page in a book. the book is availabel at Amazon and other places. The book is not about Microsoft. It is about security. The appendix is about the economic impact of a 'spoof' on the marketplace.
http://geek9pm.com/books/spoof.png
-
that doesn't violate the constitution.
"The First Amendment to the United States Constitution is part of the Bill of Rights. The amendment prohibits the Congress from making laws "respecting an establishment of religion", prohibiting the free exercise of religion, infringing on the freedom of speech and infringing on the freedom of the press."
Exactly what part is being broken?
the documents were sealed but it was by no means a public inquiry- Caldera Vs. Microsoft did not involve the public /"the people" and therefore since it doesn't involve "the people" it would violate the privacy rights of both Caldera and Microsoft if all the documents pertaining to the case were unsealed.
The fact that the author doesn't understand such simple legal facts brings the rest of it into question anyway.
-
The fact that the author doesn't understand such simple legal facts brings the rest of it into question anyway.
BC, it is not a fact. It is only your perception.
-
BC, it is not a fact. It is only your perception.
Do you mean like what your saying is only your perception?
-
Either way... Charter of rights and freedoms kicks the constitutions *censored* any day... :P
Although I suppose you couldn't get paper to fight. well you could, but it would more or less me a waiting game for the tet to become unreadable, and they are both on parchment I believe, so that could be a long wait.
-
The question is about the conduct of Microsoft. And, by extension, those involved in the first investigation.
Please look at this:
(Book on Google)
Check Point Next Generation Security Administration
http://books.google.com/books?id=uG71jPlQHrQC&pg=PA550&lpg=PA550&dq=graham+lea+microsoft&source=bl&ots=DDsgv7XXgT&sig=qGnK40p2npEMnIZ3A-dlvILBd6Y&hl=en&ei=ftz4StLsKIvisQPUxI3bCQ&sa=X&oi=book_result&ct=result&resnum=10&ved=0CCMQ6AEwCQ#v=onepage&q=graham%20lea%20microsoft&f=false
Would you say the authors where just having a false perception, that there were little facts involved?
(BTW. can you tell me how to edit my links so the look neat.)
-
Ahh, Micro is a monopoly, their always doing something stupid.
My definition of freedoms: Freedoms is a Right and a Responsibility.
Responsibility is barely talked about in Human Rights, well in Canada at least.
-
Now is the time for true confessions.
I have always made money on Microsoft stock.
So, am I am also guilty? :o
(But I sure lost on Nvidia. -Was I being punished?)
-
I hear so much about MS being a monopoly or evil corporation. People even talk about boycotting it, nobody ever mentions deBeers or Shell in the same sentence though.
Grow up and get a pair.
-
Send in the Troops....
Enough of this drivel...
-
Not Gas Companies like Shell, Oil and Drug Companies are the Monopolies
-
Not Gas Companies like Shell, Oil and Drug Companies are the Monopolies
??? ??? ???
-
I just hope you goofs land on boardwalk...
I have three houses and on my next turn it'll be a hotel.
-
Send in the Troops....
Enough of this drivel...
Well now, it's about time to bring this to an end.
This started out as a bit of fun and some tongue-in-cheek remarks. Then it started to turn rather serious. I posted a few links, there are lots more if you want them. But you can find them yourselves, the key phrase is Caldera versus Microsoft.
Now, having said that, I have used Windows 3.1 and Windows 95. And later went to Windows 98. Then I got Windows 2000, and then Windows XP Pro. And I bought a copy of Windows XP home retail. And later I bought copies of both Dell and HP s 0EM persons. And I just bought an OEM version of Vista home premium and also received the OEM Windows 7 home premium. So don't say I'm not a Microsoft supporter. They have made money off of me, and I have made money off of them. Notwithstanding, I would never want to be in a position where I would have to defend Microsoft's business practices. That is more difficult than programming in APL.
-
I just hope you goofs land on boardwalk...
I have three houses and on my next turn it'll be a hotel.
Wohoo, double six sailed right by you.
-
I would never want to be in a position where I would have to defend Microsoft's business practices
Yet you have profited nicely from them year after year...
Hypocrite.
-
Quantos: you made it sound Shell was a Monopoly or something.
Shell isn't a Monopoly, the Oil Industry is.
-
Quantos: you made it sound Shell was a Monopoly or something.
Shell isn't a Monopoly, the Oil Industry is.
That's not even close to what I inferred. They are all corporations and really don't give carp if we live or die.
-
The best companies to BoyCott are Monopolies, the next places would be the Dominant ones like McDonalds, I don't support them by the way. Cheap shoe string fries, what a joke.
-
Yet you have profited nicely from them year after year...
Hypocrite.
Yes, I am so sorry... (http://geek9pm.com/pix/monster.jpg)
-
hmm, cookie monster.
you know what eats cookies?
Possums! And giant earthworms.
-
hmm, cookie monster.
you know what eats cookies?
Possums! And giant earthworms.
BC if you turn the medication bottle right side up, it no longer says 9 pills per hour.
-
Quantos: you made it sound Shell was a Monopoly or something.
Shell isn't a Monopoly, the Oil Industry is.
What rock did you climb out from under?
An industry can't be a monopoly other wise the food industry, clothing industry, and any other industry would be a monopoly.
-
What rock did you climb out from under?
An industry can't be a monopoly other wise the food industry, clothing industry, and any other industry would be a monopoly.
heh, true, it's the industry that gets monopolized.
-
Lol. I just remembered seeing someone's signature, saying how they didn't like Monopoly being the only board game of its type...or something.
-
Definition of monopoly from dictionary.com.
the market condition that exists when there is only one seller.
Very few companies qualify for this definition. Drug companies with a new drug qualify and some companies like deBeers comes close. MS doesn't qualify.
Few people want to admit it but MS has a big market share because it has better products. It hasn't really created a lot of new products but it has improved on many other products already on the market. DOS was an improvement on QDOS.
Unix has been around since the 60's. Apple has been around for years. Along with a lot of other operating systems (anybody even heard of DEC's RSX-11M?). With all of it's flaws Windows is easier and cheaper for most people to use.
Lotus owned the spread sheet market for years, then IBM bought the company and it stagnated, and Excel grew better and better.
Wordperfect owned the wordprocessor market then it went through several ownership and management changes and it stagnated and Word got better and better.
MS is dominate but it isn't a monopoly.
-
I think it's wrong that only one company makes the game Monopoly.
Steven Wright
It was my sig for awhile...
-
I agree with that rthompson, what people don't realize about either dominant nor monopoly companies is that they are only in that position because consumers let them. the very same people who write about Microsofts "unfair business practices" and "monopoly" are often ironically using Microsoft Word on a MS system.
the thing is- they'll complain about bugs and issues with windows and MS products, and yet when they encounter a bug in an alternative program, they pretty much shrug it off.
They also have the best Windows Development environment in the form of Visual Studio; although that's been true for years.
Microsoft has moved the tech industry forward more then anybody can guess.
Take Java, for example; it uses bytecode that runs on any VM. Excellent, that gives portability.
But- how many people know that Microsoft C for DOS can compile to "P-code" which is a bytecode that runs on a P-code VM? And this was in the late eighties.
The very concept of "shared code" came into realization only with Microsoft's help; other companies managed to make messy "overlays" and other strange concepts, but when MS made windows it was a very modular design, much different from competing desktop systems. It was far easier to program in, since it was well documented and had a very comprehensive SDK.
Do people forget this? It doesn't matter how great your operating system is if it doesn't have any programs to run. Microsoft knew this, and made sure to try to make programming windows applications as easy as possible, a goal they continue to pursue- Visual Basic makes it nearly effortless to make trivial applications, and takes a lot of the messy GUI code out of the picture. with the introduction of the .NET framework, vast swathes of code that would otherwise be duplicated by countless programmers is available in one place. Sure, eve I complain about the size of the .NET framework; but it is installed ONCE; whereas, programs that duplicate code that would be in the framework might add up to three or even four times the size of the .NET framework in duplicate code. There is no doubt that they continue to strive for a Operating System that is not only easier to use, but also easier to program for, and the latter breeds the former in the way of program consistency. Anybody ever consider that the File,Edit,View,Help, etc standard menus, and the standard shortcut keys for common operation, were hardly used until MS made it part of the logo requirements?
My biggest beef is that people complain that MS is "stealing" from apple.
This is the stupidest thing I have ever heard; the original complaints of this nature originated with windows 95 and System 7, the recycle bin was errily similar to the trash.
So what? Who cares? they run on different freaking platforms, for god's sake, and there is no way that MS copied any code whatsoever from the Mac OS... Oh! Of course, it was the "idea" that was stolen.
Here's the problem. Software patents are one of the stupidest things ever thought up by a sentient being. Copyrights on the source code itself are something I think is good- but to make it impossible for somebody to build, from scratch, a similar system to yours on their own without prior permission is ludicrous, since it puts a stop to progress.
Can you imagine if Apple had WON that lawsuit? Windows would be nothing like it is today, and would look awful. No recycle bin- god knows what alternative would crop up- heck, we wouldn't even have Control-C,Control-V, and Control-X, nope, we'd have to deal with Control-Shift-Insert,Shift-Insert and Shift-Delete... and of course, we wouldn't even have windows to begin with, remember, windows are square. Dear gawd! windows on the Mac OS are square too. COPIERS! so of course MS would have had to choose some other shape for their windows. and god forbid they include controls on those windows that perform window management functions, since that's copying Apple too.
the very fact is, IMO it's a inalienable right to all creative minds that they be allowed to think about the uses of these "ideas" and improve upon them.
You know what happened when MS "copied" menus the first time?
they improved them. the original Apple menus had no concept of a "submenu"- that is, only one drop-down was possible. this was possible in windows. So Apple added it to System 7.
Anybody wonder if this would have EVER been added if MS didn't analyze the idea Apple had and improve upon it's features? Why is this copying?
To forbid copying of ideas is to support the monopolization of them. And we've already thoroughly discussed the problem with monopolies.
-
Here's the problem. Software patents are one of the stupidest things ever thought up by a sentient being. Copyrights on the source code itself are something I think is good- but to make it impossible for somebody to build, from scratch, a similar system to yours on their own without prior permission is ludicrous, since it puts a stop to progress.
Exactly right! :)
The Case Against Patents (http://www.tinaja.com/glib/casagpat.pdf)
-
To forbid copying of ideas is to support the monopolization of them. And we've already thoroughly discussed the problem with monopolies.
Just try to imagine where we would be today if no one was allowed to improve the idea of the first wheel and we had to stick to the original until the inventory could come up with a better one. Or try finding one of the first TV's and see how it looks then stop and think that you might still be watching one of those had no one been allowed to improve upon the idea.
I think it is crazy when talk about MS and say they stole something yet don't talk about every other company that has taken some one else idea and improved it. Whether it is a tangible item or computer software everything starts out as an idea.
-
yes, the way I see it, the idea is the "seed", and it really doesn't become something "stealable" until a person plants that seed by doing something with the idea. However, it is only the stuff that grew from that seed that should be protected, not the idea itself. MS may have used similar ideas, but they grew their own plants around them; that is, they wrote their own implementations of the idea. In my opinion it should be the implementation, if anything, that is protected- that is, the source code to what they did, because that is where the real work was done. This goes for both Apple, and MS.
This brings up an interesting and commonly repeated argument, however. many people claim that MS is, or was, using "secret" APIs in their own programs, such as Word- one item that was claimed to be a "secret" API was the Microsoft Office commandbars. People claimed that MS was keeping it to themselves.
However, there is an angle nobody is realizing. the Commandbar library was developed using standard API code; there is no special undocumented voodoo there. The fact is, it was developed by the Office team, not by the windows team, and is therefore not part of windows.
There was nothing stopping these complainants from writing their own implementations of commandbars, and it was fully possible, while a pain in the *censored*, to do so. To say that MS is using "secret" APIs is ludicrous. Many other software companies that develop windows applications have their own implementations of menus, commandbars, and various other UI elements, and they are certainly no worse then the MS commandbar, and definitely do not use secret APIs.
People were complaining that MS had poor developer support. I believe it has been quite the opposite from the beginning; it is, in fact, the strong developer support and powerful APIs as well as comprehensive documentation of those APIs that have made MS the market leader; the MSDN, for example, was started, in some fashion, almost 2 decades ago. Is there an equivalent Apple development community?
The windows API has remained relatively consistent up through windows 7. The Apple OSX switch, and every update after, completely breaks every Mac application build for previous builds. yeah, that's developer and User friendliness.
Of course, the common response is that the OSX switch was impossible to make API compatible.
Why? the NT kernel and architecture is at least as different, and MS was able to use the SAME APIs, with minor changes that were well documented. And in most cases, it included "compatibility shims" for those applications unaware of the changes (namely 16-bit programs) so they could run as well. the documentation and same API are called "developer friendly" keeping common applications running on a completely separate architecture, even though they are the competitions application ( for example, wordperfect) is called "user friendliness".
the Mac OS, both traditional and OSX, I think are pretty good operating systems, but many of their users fool themselves into thinking they are more user-friendly then Windows. This may be the case for a single version, but when updating the minor version of your OSX causes every single application you have to require a new install or a new version as well it puts a little stress on that concept. There is, however, one saving grace for development, at least on the OSX platform, from what I understand "XCode" is included with OSX, and therefore developing applications on OSX is free (Windows requires the purchase of something like Visual Studio or the download of one of many equivalents), and they finally have a developer-oriented site. However- Windows has had a developer oriented market face since the earliest betas of windows, Apple only relatively recently put up a strong developer oriented community.
-
BC, most of what you say is true. But you make some statements that you know nothing about. Have you really read the whole SDK from top to bottom for any Windows version? Are you now on the MS payroll? You are starting to speak like their PR department.
Fat. There were undocumented entry points in the OS that MS used but were not documented. Can I prove it? No, I don't have to. There were undocumented bur known. And if I wee to document them I would violate the EULA. But he relevant question should be; "Could MS have had an advantage by knowing thins about the OS that others did not know?" If you answer 'yes they could,' then you might as well say they did. MS is a very aggressive hard-ball player. They do not miss a chance to get the upper hand.
-
True; there are exports that require an ordinal value; there are a number of undocumented functions that I have used before in shdocvw.dll, at the very least.
On my Vista PC I am using now, I get the following from dumpbin /exports
Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file comctl32.dll
File Type: DLL
Section contains the following exports for COMCTL32.dll
00000000 characteristics
47918E42 time date stamp Fri Jan 18 21:44:34 2008
0.00 version
2 ordinal base
420 number of functions
118 number of names
ordinal hint RVA name
401 0 00021A2C AddMRUStringW
400 1 0002178D CreateMRUListW
8 2 0000BC3B CreateMappedBitmap
12 3 000231D8 CreatePropertySheetPage
18 4 000231D8 CreatePropertySheetPageA
19 5 000231BE CreatePropertySheetPageW
20 6 0002861E CreateStatusWindow
6 7 0002861E CreateStatusWindowA
21 8 000285E1 CreateStatusWindowW
7 9 0002A178 CreateToolbar
22 A 0002A091 CreateToolbarEx
16 B 0002D72F CreateUpDownControl
331 C 00015262 DPA_Clone
328 D 00006E89 DPA_Create
340 E 00006EA1 DPA_CreateEx
337 F 0000727C DPA_DeleteAllPtrs
336 10 00007225 DPA_DeletePtr
329 11 00006DD7 DPA_Destroy
386 12 00006E31 DPA_DestroyCallback
385 13 00006E55 DPA_EnumCallback
332 14 00006D45 DPA_GetPtr
333 15 0002E5E7 DPA_GetPtrIndex
330 16 00006EF5 DPA_Grow
334 17 00006D6F DPA_InsertPtr
9 18 0002E9F5 DPA_LoadStream
11 19 0002EB42 DPA_Merge
10 1A 0002E626 DPA_SaveStream
339 1B 00014F15 DPA_Search
335 1C 0001578B DPA_SetPtr
338 1D 00013DBC DPA_Sort
320 1E 000150A2 DSA_Create
327 1F 0002E5B5 DSA_DeleteAllItems
326 20 0002E961 DSA_DeleteItem
321 21 00015070 DSA_Destroy
388 22 000159B2 DSA_DestroyCallback
387 23 000159D6 DSA_EnumCallback
322 24 0002E57C DSA_GetItem
323 25 00015047 DSA_GetItemPtr
324 26 000150D7 DSA_InsertItem
325 27 0002E8D7 DSA_SetItem
413 28 00015447 DefSubclassProc
23 29 00022C79 DestroyPropertySheetPage
24 2A 0006C0A0 DllGetVersion
15 2B 0002F2DE DrawInsert
25 2C 00029258 DrawStatusText
5 2D 00029258 DrawStatusTextA
26 2E 00029235 DrawStatusTextW
403 2F 00021E62 EnumMRUListW
27 30 000320B7 FlatSB_EnableScrollBar
28 31 00031EFD FlatSB_GetScrollInfo
29 32 00031CBB FlatSB_GetScrollPos
30 33 00031D17 FlatSB_GetScrollProp
31 34 00031E7B FlatSB_GetScrollRange
32 35 000322AC FlatSB_SetScrollInfo
33 36 0003215B FlatSB_SetScrollPos
34 37 0003237B FlatSB_SetScrollProp
35 38 000321D0 FlatSB_SetScrollRange
36 39 00031FC9 FlatSB_ShowScrollBar
152 3A 000217A8 FreeMRUList
4 3B 00032A8C GetEffectiveClientRect
37 3C 00032BD7 GetMUILanguage
38 3D 00066E78 ImageList_Add
39 3E 00067658 ImageList_AddIcon
40 3F 0000C6B7 ImageList_AddMasked
41 40 00066CE7 ImageList_BeginDrag
42 41 00066F4B ImageList_Copy
43 42 0000CB8E ImageList_Create
44 43 000078A6 ImageList_Destroy
45 44 00065F59 ImageList_DragEnter
46 45 00065FB2 ImageList_DragLeave
47 46 00065F87 ImageList_DragMove
48 47 00065FDA ImageList_DragShowNolock
49 48 000104F7 ImageList_Draw
50 49 0000CC15 ImageList_DrawEx
51 4A 0000916D ImageList_DrawIndirect
52 4B 0000D09F ImageList_Duplicate
53 4C 00065F1B ImageList_EndDrag
54 4D 0000F68E ImageList_GetBkColor
55 4E 00066CB4 ImageList_GetDragImage
56 4F 000670E3 ImageList_GetFlags
57 50 00066F04 ImageList_GetIcon
58 51 00007F45 ImageList_GetIconSize
59 52 00008037 ImageList_GetImageCount
60 53 0000D12F ImageList_GetImageInfo
61 54 00066DED ImageList_GetImageRect
62 55 00014DFC ImageList_LoadImage
63 56 00014DFC ImageList_LoadImageA
64 57 00014E4A ImageList_LoadImageW
65 58 00066FE5 ImageList_Merge
66 59 0000D177 ImageList_Read
67 5A 00066EBF ImageList_Remove
68 5B 0000D0E4 ImageList_Replace
69 5C 00007FD5 ImageList_ReplaceIcon
70 5D 0000BBE5 ImageList_SetBkColor
75 5E 00066C60 ImageList_SetDragCursorImage
76 5F 00068775 ImageList_SetFilter
77 60 00067054 ImageList_SetFlags
78 61 00066F9D ImageList_SetIconSize
79 62 00066E33 ImageList_SetImageCount
80 63 00007F8D ImageList_SetOverlayImage
81 64 00066D95 ImageList_Write
17 65 000045C1 InitCommonControls
82 66 00007010 InitCommonControlsEx
83 67 00032BAA InitMUILanguage
84 68 0003265D InitializeFlatSB
14 69 0002F1CB LBItemFromPt
13 6A 0002F713 MakeDragList
2 6B 000327C3 MenuHelp
85 6C 00028303 PropertySheet
86 6D 00028303 PropertySheetA
87 6E 000282EB PropertySheetW
88 6F 00008145 RegisterClassNameW
412 70 00015863 RemoveWindowSubclass
410 71 000155C8 SetWindowSubclass
3 72 000329C7 ShowHideMenuCtl
236 73 00007363 Str_SetPtrW
89 74 00032530 UninitializeFlatSB
90 75 00035A6E _TrackMouseEvent
71 000072BC [NONAME]
72 00021FAB [NONAME]
73 000072D5 [NONAME]
74 00021FD7 [NONAME]
151 0002191A [NONAME]
153 00021BD8 [NONAME]
154 00021EE8 [NONAME]
155 000219F1 [NONAME]
156 00021C09 [NONAME]
157 000218AD [NONAME]
163 00022D79 [NONAME]
164 00025029 [NONAME]
167 00021CBB [NONAME]
169 00021834 [NONAME]
233 0002E875 [NONAME]
234 0002ECA0 [NONAME]
235 0002E80E [NONAME]
341 0003315D [NONAME]
342 00017B3C [NONAME]
350 [NONAME] (forwarded to SHUNIMPL.#78)
351 [NONAME] (forwarded to SHUNIMPL.#79)
352 [NONAME] (forwarded to SHUNIMPL.#80)
353 [NONAME] (forwarded to SHUNIMPL.#81)
354 [NONAME] (forwarded to SHUNIMPL.#82)
355 [NONAME] (forwarded to SHUNIMPL.#83)
356 [NONAME] (forwarded to SHUNIMPL.#84)
357 [NONAME] (forwarded to SHUNIMPL.#85)
358 [NONAME] (forwarded to SHUNIMPL.#86)
359 [NONAME] (forwarded to SHUNIMPL.#87)
360 [NONAME] (forwarded to SHUNIMPL.#88)
361 [NONAME] (forwarded to SHUNIMPL.#89)
362 [NONAME] (forwarded to SHUNIMPL.#90)
363 [NONAME] (forwarded to SHUNIMPL.#91)
364 [NONAME] (forwarded to SHUNIMPL.#92)
365 [NONAME] (forwarded to SHUNIMPL.#93)
366 [NONAME] (forwarded to SHUNIMPL.#94)
367 [NONAME] (forwarded to SHUNIMPL.#95)
368 [NONAME] (forwarded to SHUNIMPL.#96)
369 [NONAME] (forwarded to SHUNIMPL.#97)
372 [NONAME] (forwarded to SHUNIMPL.#98)
373 [NONAME] (forwarded to SHUNIMPL.#99)
374 [NONAME] (forwarded to SHUNIMPL.#100)
375 [NONAME] (forwarded to SHUNIMPL.#101)
376 [NONAME] (forwarded to SHUNIMPL.#102)
377 [NONAME] (forwarded to SHUNIMPL.#103)
382 0000F8B2 [NONAME]
383 0002EFCA [NONAME]
384 00033F58 [NONAME]
389 0006876B [NONAME]
390 00067099 [NONAME]
402 00021935 [NONAME]
404 00021471 [NONAME]
411 0002ED2F [NONAME]
414 00032DDD [NONAME]
415 0006504E [NONAME]
416 00064CA3 [NONAME]
417 00063B7B [NONAME]
418 00063597 [NONAME]
419 000637D6 [NONAME]
420 00063892 [NONAME]
421 00063C71 [NONAME]
Summary
3000 .data
5000 .reloc
7000 .rsrc
75000 .text
Now, we have a lot of [NONAME] entries in there, who knows what they are? they could easily be super secret APIs.
However!
there is also a API monitor available from http://www.rohitab.com/downloads; let us see, if some programs might use some of the "secret" symbols!
Oh... err, nevermind. that one only shows documented API's... curses!
Well, anyway; I was referring specifically to the claim- for example, as I stated- commandbar controls. Commandbars are contained in mso... well actually I forget the filename, but they are contained in a DLL. this DLL is part of MS office- not a part of windows, and therefore I see no reason why MS would need to document it.
some early claims of this sort are of DoubleSpaces use of undocumented DOS functions. However, since DoubleSpace was in fact a part of DOS (traditionally speaking) I don't think it's something that would be unexpected; and Stac trying to reverse engineer these undocumented functions which are really a Secret interface between one comprises two parts of the same operating system can be said to be a trade secret.
However, I also found this site:
http://boycottnovell.com/wiki/index.php/Microsoft_developers_used_undocumented_APIs
if these really are E-mails amongst MS staff- and I have no real reason to believe otherwise- it must be true that they did, indeed use undocumented APIs. The states reason is to gain competitive advantage- but nobody can really be sure of that, either. Could have been that one of the programmers was used to having Windows Source Access and remembered a useful function.
Wouldn't it be hilarious if the "undocumented" routines were pretty much just wrappers around C runtime functions, like some of the functions in kernel32.dll? and All this was caused by some goof who was used to using them?
Also, for IE, it's an interesting twist game- since MS "claimed" it was a part of the OS, it "should" be able to use the same undocumented APIs that- say, control panel or the display applet uses. I don't think this is true, IE should be a separate product.
On the other hand, IE hasn't really gotten any better from any use of undocumented routines, anyway. I would imagine they stopped... or at least replaced the undocumented calls with their C-runtime equivalents (hee hee) for IE7.
Also it has been said that they were "pushing" IE by using it in Visual Studio; I really don't think that this was a purposeful move by MS- the IE browser control is the ONLY easily accessed and used Browser technology available; while it's true they could have found another way to display the information- I guess the temptation of HTML was too much to bear.
We can't say that it's a calculated move by MS when it could just as easily be inept management or programmer discipline.
-
Nope.
Its Southern Fried Chicken
or Chicken Fried Steak.
-
or Chicken Fried Steak.
if your dyslexic maybe.
-
Good morning BC, well, I waited for several hours and nobody else has added anything to this thread. Maybe somebody would like to make a note of how the United States Constitution protects the freedom of all and if anybody threatens the freedom of just one, the freedom of all that is in danger.
Instead of just bloating up my own post, I'm going to give a link to many recent news items this year that still involve the Microsoft antitrust suit. All here are welcome to look over these links, and add some real comments about the recent news in the suit.This is not dead history. It's not over yet.
Browse tag: Microsoft anti-trust case - Page 1 (http://www.pcworld.com/browse.html?tag=microsoft+anti-trust+case)
-
One of the things that is really annoying, is when somebody says something about the constitution and assumes it applies to the world. Not that that's what you did here, you just reminded me of it.
Would this "technical" documentation be available in locations outside of the jurisdiction of the DOJ or the Constitution, like Canada?
BC, most of what you say is true. But you make some statements that you know nothing about. Have you really read the whole SDK from top to bottom for any Windows version? Are you now on the MS payroll? You are starting to speak like their PR department.
I browsed the Apr 2000 snapshot for nearly 5 years; Accumulated a lot of random information through the KB articles, technical articles, backgrounders, etc.
And yes, certain portions of the documentation- namely the shell extensions portion - are written for people that want to create a shell extension.
A easy example is the documentation on Control Panel Applets. the documentation is geared towards somebody hosting Control Panel Applets; what one needs to do is view the contract from the other side (http://blogs.msdn.com/oldnewthing/archive/2003/12/26/45979.aspx).
Just to be clear- I'm not debating wether IE6 uses undocumented functions; I'm debating wether there is any real way to tell wether a program is using undocumented functions or not.
Sure, we have dumpbin /exports; and dumpbin /imports; for internet explorer 7, I get the following from dumpbin /imports:
Microsoft (R) COFF/PE Dumper Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file iexplore.exe
File Type: EXECUTABLE IMAGE
Section contains the following imports:
ADVAPI32.dll
401000 Import Address Table
40F038 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
77CC7908 22A RegCloseKey
77CC765E 268 RegQueryValueExW
77CC7BA1 25B RegOpenKeyExW
77CA9850 24C RegEnumValueW
77CC80C3 24A RegEnumKeyW
77CB3D5A 278 RegSetValueExW
77CB41F1 233 RegCreateKeyExW
77CA3FB6 242 RegDeleteValueW
77CA38CD 23E RegDeleteKeyW
77CB48B4 262 RegQueryInfoKeyW
77CB32D4 269 RegQueryValueW
KERNEL32.dll
401030 Import Address Table
40F068 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
77F1140B 2B9 InitializeCriticalSection
77E3D300 3DA SetErrorMode
77E1A824 2AA HeapSetInformation
77E1A84F 420 SetUnhandledExceptionFilter
77F11B41 BF DeleteCriticalSection
77E19C80 171 GetCommandLineW
77E3ADF9 2FE LocalAlloc
77E36B51 109 ExpandEnvironmentStringsW
77E3AD76 302 LocalFree
77E3D555 8F CreateMutexW
77E3A6F9 1E7 GetLastError
77E2FB56 360 RaiseException
77E194DC 2F6 LoadLibraryA
77E39800 470 WaitForSingleObjectEx
77E110E8 7D CreateFileMappingW
77E2F333 1F3 GetLongPathNameW
77E09B95 1CC GetFileAttributesExW
77E17CC2 52 CompareFileTime
77E3A411 4B5 lstrcmpW
77E19362 2F9 LoadLibraryW
77E2FADC 2BA InitializeCriticalSectionAndSpinCount
77E1DC12 1A9 GetCurrentDirectoryW
77E397E0 46F WaitForSingleObject
77E0B93F 245 GetSystemDefaultLCID
77E39EC5 272 GetUserDefaultLCID
77F18AF0 DA EnterCriticalSection
77F18AB0 2F4 LeaveCriticalSection
77E33CA6 39F SearchPathW
77E37FA1 13A FindResourceW
77E30723 275 GetUserDefaultUILanguage
77DF701F 248 GetSystemDefaultUILanguage
77E33DB4 14D FreeLibrary
77E1A6E3 1EB GetLocaleInfoW
77E3AECB 80 CreateFileW
77E19109 2F8 LoadLibraryExW
77E369FD 139 FindResourceExW
77E36ADB 2FB LoadResource
77E8FD89 449 UnhandledExceptionFilter
77E3C905 1AA GetCurrentProcess
77DF18EF 438 TerminateProcess
77DF18C0 253 GetSystemTimeAsFileTime
77E39706 26A GetTickCount
77E3A660 359 QueryPerformanceCounter
77E392A5 1F7 GetModuleHandleA
77E30264 33F OutputDebugStringA
77DF1929 23D GetStartupInfoW
77E3943C 2BF InterlockedCompareExchange
77DF1C5D 42C Sleep
77E39428 2C2 InterlockedExchange
77E368F0 30F MapViewOfFile
77E3A651 1AB GetCurrentProcessId
77E37267 338 OpenProcess
77E3B65E 76 CreateEventW
77E399F0 1AE GetCurrentThreadId
77DF1BF3 98 CreateProcessW
77E3A6D8 46D WaitForMultipleObjects
77E3A995 44C UnmapViewOfFile
77E39A32 4C1 lstrlenW
77E3A804 1FA GetModuleHandleW
77E3903B 222 GetProcAddress
77E82467 3D3 SetDllDirectoryW
77E3A640 3F4 SetLastError
77E3AE8D 44 CloseHandle
77E39782 37D ReleaseMutex
77E13458 27B GetVersionExW
77E3B27E 1F6 GetModuleFileNameW
77E39BEB 56 CompareStringW
GDI32.dll
401140 Import Address Table
40F178 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
77B696B9 3E CreateFontIndirectW
77B67198 1E4 GetObjectW
77B65A37 D0 DeleteObject
USER32.dll
401150 Import Address Table
40F188 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
77D70AED 263 SendMessageW
77D60EA7 2F CharNextW
77D66B70 3A CharUpperW
77D67A5F 17A GetUserObjectInformationW
77D67A73 173 GetThreadDesktop
77D810B0 A6 DialogBoxParamW
77D72715 1BA IsDlgButtonChecked
77D5CD8B D1 EnableWindow
77D8326E D3 EndDialog
77D80F23 277 SetDlgItemTextW
77D5D472 11F GetDlgItem
77D69CCB 1E4 LoadStringW
77DAD6CF 1FF MessageBoxW
77D59B28 6 AllowSetForegroundWindow
77D80E38 25A SendDlgItemMessageW
77D690AA 155 GetParent
msvcrt.dll
401194 Import Address Table
40F1CC Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
708725BE E1 __wgetmainargs
70873D34 114 _cexit
708C95EE 162 _exit
708C3126 6A _XcptFilter
70873C08 48F exit
708FE600 3E7 _wcmdln
7086C4E6 1D5 _initterm
708C961D 101 _amsg_exit
708F566D D4 __setusermatherr
70901880 F5 _adjust_fdiv
70871790 B9 __p__commode
7087179B BE __p__fmode
708717F4 D2 __set_app_type
70869AC0 4EA memcpy
7086A048 4EC memmove
708B2F8E 37 ?terminate@@YAXXZ
7087097D 127 _controlfp
70869F69 3A6 _unlock
70869F85 242 _lock
70870D59 2EB _onexit
7086A13B 156 _errno
70869DF1 12 ??2@YAPAXI@Z
70869DE1 14 ??3@YAXPAX@Z
7086AEB1 564 wcsstr
70869860 4EE memset
7086ADCB 55B wcsncmp
7086B971 3CE _vsnwprintf
7086AC10 3EF _wcsicmp
7086A2C3 3F9 _wcsnicmp
7086B086 482 bsearch
7086B4CA 469 _wtoi
7086A23D 551 wcschr
7086F8D1 8D __dllonexit
ntdll.dll
40121C Import Address Table
40F254 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
77F09999 48B RtlUnwind
SHLWAPI.dll
401224 Import Address Table
40F25C Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
6E7C0B36 Ordinal 24
6E7BECA9 Ordinal 437
6E7C0075 84 PathRemoveFileSpecW
6E7C04F2 30 PathAppendW
6E7CDEC3 78 PathQuoteSpacesW
6E7BFE7B B9 SHGetValueW
6E7C1336 12A StrStrW
6E7B1063 134 UrlApplySchemeW
6E7A7C2E 13C UrlCreateFromPathW
6E7BB3FB 36 PathCombineW
6E7B4431 136 UrlCanonicalizeW
6E7E5751 Ordinal 462
6E7A87CF 6E PathIsURLW
6E7B7F69 2C PathAddBackslashW
6E7BF55D Ordinal 158
6E7B7ED3 B2 SHEnumValueW
6E7BFEA5 C8 SHQueryValueExW
6E7BECEB Ordinal 154
6E7BF2EA D3 SHRegGetValueW
6E7A873D E0 SHSetValueW
6E7B2556 12F StrToIntExW
6E7A2B73 AA SHDeleteKeyW
6E7B7EFE 98 PathUnquoteSpacesW
6E7BED97 44 PathFindFileNameW
SHELL32.dll
401288 Import Address Table
40F2C0 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
769711C4 Ordinal 147
7693F693 3 CommandLineToArgvW
ole32.dll
401294 Import Address Table
40F2CC Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
72C5035F 38 CoInitialize
72C6AF2E 60 CoTaskMemFree
72C6D271 64 CoUninitialize
72C69689 5F CoTaskMemAlloc
72C69EA6 F CoCreateInstance
72C69BFA 12D StringFromGUID2
72C4ED88 36 CoGetTreatAsClass
urlmon.dll
4012B4 Import Address Table
40F2EC Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
727017F9 Ordinal 111
iertutil.dll
4012BC Import Address Table
40F2F4 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
6E3124D0 Ordinal 81
6E311A5F Ordinal 85
6E311815 Ordinal 79
6E342FC0 Ordinal 28
6E31656A Ordinal 46
6E3116FE Ordinal 32
6E31450C Ordinal 44
6E31242F Ordinal 42
6E314232 Ordinal 11
6E31777A Ordinal 31
6E343A75 Ordinal 9
6E3118AC Ordinal 74
VERSION.dll
4012F0 Import Address Table
40F328 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
4ACE16A1 4 GetFileVersionInfoSizeW
4ACE19CE 5 GetFileVersionInfoW
4ACE19A2 D VerQueryValueW
Header contains the following bound import information:
Bound to ADVAPI32.dll [49E03717] Fri Apr 10 23:22:15 2009
Bound to KERNEL32.dll [49E037DD] Fri Apr 10 23:25:33 2009
Contained forwarders bound to NTDLL.DLL [49E03821] Fri Apr 10 23:26:41 2009
Bound to GDI32.dll [49E03728] Fri Apr 10 23:22:32 2009
Bound to USER32.dll [49E0380E] Fri Apr 10 23:26:22 2009
Bound to msvcrt.dll [49E0379E] Fri Apr 10 23:24:30 2009
Bound to NTDLL.DLL [49E03821] Fri Apr 10 23:26:41 2009
Bound to SHLWAPI.dll [49E037F1] Fri Apr 10 23:25:53 2009
Bound to SHELL32.dll [49E037EC] Fri Apr 10 23:25:48 2009
Bound to ole32.dll [49E037D7] Fri Apr 10 23:25:27 2009
Bound to urlmon.dll [49E03809] Fri Apr 10 23:26:17 2009
Bound to iertutil.dll [49E03758] Fri Apr 10 23:23:20 2009
Bound to VERSION.dll [49E03812] Fri Apr 10 23:26:26 2009
Section contains the following delay load imports:
IEFRAME.dll
00000001 Characteristics
004101C0 Address of HMODULE
00410000 Import Address Table
0040EE8C Import Name Table
00000000 Bound Import Name Table
00000000 Unload Import Name Table
0 time date stamp
004048C9 Ordinal 101
004048E0 Ordinal 159
MLANG.dll
00000001 Characteristics
004101C4 Address of HMODULE
0041000C Import Address Table
0040EE98 Import Name Table
00000000 Bound Import Name Table
00000000 Unload Import Name Table
0 time date stamp
0040E90C Ordinal 123
0040E8E4 Ordinal 121
Summary
2000 .data
1000 .reloc
89000 .rsrc
F000 .text
It would appear, that genuinely speaking, internet explorer 7 uses undocumented functions. Here's one example:
SHELL32.dll
401288 Import Address Table
40F2C0 Import Name Table
FFFFFFFF time date stamp
FFFFFFFF Index of first forwarder reference
769711C4 Ordinal 147
7693F693 3 CommandLineToArgvW
It's importing ordinal 147 from shell32.dll; now, the question is- does this mean the routine is undocumented?
Actually- it IS documented. ordinal 147 of Shell32.dll is SHCLSIDFromString(), and it performs the exact same function as CLSIDFromString() (but with something common in the undocumented shell32 and shdocvw functions- no argument checking. They were undocumented for a reason.
I'm sure you'll find this site interesting; lists a good number of undocumented routines in any number of Windows libraries:
http://www.geoffchappell.com/viewer.htm?doc=studies/windows/shell/index.htm&tx=39
It appears tyo be written in a Microsoft Necrostic... is Necrostic a word? I'm thinking, biassed against them. On the other hand, it does reveal a few interesting morsels. Let me examine one undocumented feature I found interesting.
The Listview Control (which can be used by any number of applications) stores some view data in:
* HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Any Listview control will load this data when it is created, or it received a WM_SETTINGSCHANGE message. There is, a caveat, as the author explains- when used as a control- the parent window will have to forward this message to the listview control. MS documents the forwarding of WM_SYSCOLORCHANGE, but makes no mention of the SETTINGSCHANGE message. He goes on to state that:
Yet the consequences of not forwarding either message are similar. Suppose for example that a user clears the “Use a background image for each folder type” setting while a List-View control shows a watermark. If the control’s parent forwards the WM_SETTINGCHANGED message, then the watermark disappears in accordance with the user’s wishes. Without forwarding, the watermark remains.
Understandable, but at the same time; the "Folder options" dialog is used for Windows Explorer folder windows; what about listviews that display other data? Should the folder options dialog affect them as well? I won't debate wether it is undocumented, and it certainly should, but realistically speaking he overstates the consequences of this one.
One of my main problems with the whole movement is that the majority of the "undocumented" functions are things like SHCanonicalizepath, and SHAppendPath, and any number if similar routines that are *censored* near useless. They are basic string manipulation for pete's sake. There are some that are simply aliases for already documented routines. For example-
the "ShellDesktop" function returns a desktop object. This routine is clearly an alias for using ParseDisplayName on the root IFolder with the Desktop CLSID, which is documented (heck, I use it from VB6)
-
Well BC, This issue goes way beyond what you see in the code.
Let me have a bit of space here you to respond the one point you made.
I had asked you if you had read all through the SDK for one of them Windows versions. You respond to that you had spent years reading through all the nodes and you found many different features that were somewhere in the Microsoft knowledge base or in some of the notes somewhere in the documentation. You have just made an important point. You are a fairly experienced programmer. It took you a long time to find this information. Microsoft already had the information available to its employees. Likely, they had indexed and compiled for their own use. And beyond that, they had direct access to the architects that had designed the system. Some of this has been gathered from e-mails that DOJ got from Microsoft. Some of the e-mails indicated there was a deliberate attempt to confuse the competition. The DOJ took the position that this was unfair use of the operating system. Because the information was buried in notes, it was considered to be undocumented. But it was really documented. Just hard to find. The DOJ charged that this was absolutely intentional on Microsoft's part. Much of the SDK is fairly easy to follow. But that information alone would not allow a developer, such as yourself, to create an application that would be on a par with something that Microsoft could produce. Some of this information is buried in the transcripts in the case. I suppose we should also accuse the DOJ of hindering public knowledge of this issue by the huge quantity of documents they produced. Anyway, what I wanted to say was that your response to my question makes the point. It was hard for others to get to the information that Microsoft had available to themselves.
Okay, end of rant. Microphone off.
The justice department got a judgment to the effect that MS used some unknown or hidden features to confuse the competition and get a foot into the marketplace in an unfair way. It was about IE and also the VM and other stuff.
The issue is not just the value of unknown features, but to what extent it was a deliberate and effective restriction of the free market.
Do you have accuse to the public documents? BTW, in one place I found a reference accusing either Microsoft or somebody was making it hard to research this material using engines like Yahoo or Google. But that reference itself was buried in a book that is not in text format. I already gave that link.
Did you read any of the links in the PCWorld search page I gave? One was a Blog about how the new administration in the White House wants to pick up the MS suit and use it for some publicity.
-
One thing that I've heard people say that MS uses "secret" API's for (by no means an official accusation by the DOJ or anything though) was the Right-click Context menu.
It's painful... but not impossible. How painful? Painful enough that I made three backups on CD and external drives when I finally got it working. Working with PIDL's in VB6 is almost as bad as manual pointer management with it. Oh wait, that's what it is, heh.
the MSDN library is available to all- I'm not sure if it had a web-based portal in 2000 like it does now, though. Also I believe it might have required a subscription (?) not sure.
Basically; the whole thing boils down to the Office and other teams having access to the windows source, as well as being able to query the people who built it. Now, that being said, MS is a BIG company; finding the right person might be a pain, but logistics issues aside they will definitely have an easier time of it then an ISV or independent programmer would. Given the quality of some of the SH functions it's clear why they remained undocumented- they are freaking embarassing. the SH functions dealing with paths; the standard API's have a parameter that tells it how big the buffer is; the SH functions, don't. Not sure how the heck they work with it. I've heard they just assume that the buffer is MAX_PATH (defined as 240) characters long. Of course this means the SH functions will never work with Unicode paths... and in fact they do not, which is peculiar considering they also have unicode exports. maybe I called them wrong. Either way, as you said it wasn't necessarily the value of the functions, or was it? in order to gain an unfair advantage one would assume that these functions might actually not suck. That being said their are definitely some neat undocumented functions in some components; but I believe explorer, not IE, uses them (therefore they wouldn't fall under the whole middle-ware thing, I don't think). Matt Pietrek has(or should I say had? I dunno) a penchant for using undocumented functions, too, and this was in a MS published magazine. (I believe his column was called "Under the Hood").
Another interesting question is wether they are being cooperative on both sides. For this I will invent a undocumented feature scenario (although it could easily be implemented by some MS program somewhere). I speak of the undocumented Window Structure.
Window Handles are used ubiquitously to access Windows attributes, to perform operations on the window, and any number of things. It turns out that this handle is actually a pointer to an undocumented memory structure that holds countless tidbits of data on the Window; doubtless the Window functions access this structure.
Now- perhaps without the User interface programmers knowledge, somebody else within microsoft might find this cool and perhaps use this undocumented structure. (how do they get the structure? Well, maybe they use their access rights and see the declaration themselves). Countless others have reverse-engineered the window structure too.
In this case, if the MS product has competition and works better and or is more integrated because of this, it's safe to say that they gained an unfair advantage.
But remember- as far as the user interface programmers are concerned, the structure is undocumented- and for good reason, so they can forget about compatibility- all access to windows should be through handles and functions like MoveWindow and GetWindowLong() and GetWindowLong() and so forth. (for example, NT4->2000 introduced "Layer attributes" this likely added a number of members to this structure and maybe even changed the alignment and layout too); I believe this has actually occured, but I cannot recall the program name. (maybe it was spy++.... can't remember). Anyway, so that program using the undoc'd technique is released.
But what happens with a new version of windows that changes that undoc'd structure? the program copies it expecting a certain format, who knows what happens if it's in the wrong format.
MS will likely, after investigating the issue, smack the programmer who did it originally and add a Application Compatibility hack to get the program working. Now, this could easily be construed as undue benefit, but it bears mention that the majority of programs in this compat database are actually non-MS programs; and a large number of them try to use the very same type of undocumented techniques.
Essentially, the allegation is that the various teams at MS work together on various projects- this is clear simply because IE uses a number of undocumented routines, regardless of the nature of said routines, there is no way those routines could be used by the IE team unless the IE team was aware of them; and since shdocvw (and the various other libraries the routines were in) were part of the windows OS, they must have been created by somebody working on the Windows source.
It wasn't necessarily that MS had done any damage (R.I.P netscape) but that there was potential to make these routines even more "useful" to the program using them, and yet remain undocumented. Vast swathes of windows functionality could be left undocumented in this fashion, and called by MS programs for a competitive edge.I think this is the point the allegations are putting forward.
-
Understandable, but at the same time; the "Folder options" dialog is used for Windows Explorer folder windows; what about listviews that display other data? Should the folder options dialog affect them as well? I won't debate wether it is undocumented, and it certainly should, but realistically speaking he overstates the consequences of this one.
Leave aside that even if what you say were true, there would still be an effect for shell extensions. Consider instead that the "Use a background image for each folder type" option is not in the Folder Options: as noted plainly on my page that you quote from, the option is on the Visual Effects tab of the Performance Options dialog, as reached from System Properties. It is not just for Windows Explorer folder windows. It applies to all List-View controls in all programs, whether you do or don't like that it does or should. (No List-View control can get a watermark drawn if ListViewWatermark in the registry evaluates as false.)
Of course, few software manufacturers will care, let alone suffer, if a List-View control in their product keeps its watermark after the user turns off this option. If the user closes the program and restarts, the watermark will not be drawn, in (delayed) accordance with the user's expressed wish. The consequences are just those of programming pride: do you like that your program respects the user's wishes immediately that the user expresses them? If so, then you would want to know that what Microsoft's documentation tells you about forwarding WM_SYSCOLORCHANGE applies also to WM_SETTINGCHANGED. How is this overstated?
As for your suggestion of bias, all I can say is that if I am biased I have come to it from years of gathering small bits of evidence that might otherwise go unnoticed but which I think accumulate into a significant effect. You'll find few others who take anything like the same care with what they call evidence when commenting on software.
-
WOW!lTthis thread is still going!
About Pietrek.:Matt Pietrek (born 27 January 1966) is a computer specialist and author specializing in MS Windows.
Pietrek has written several books on the subject and, for eight years, wrote the column "Under the Hood" in MSJ (and subsequently) MSDN Magazine. As of April 2004 he has been working at Microsoft, initially on Visual Studio.
...
http://en.wikipedia.org/wiki/Matt_Pietrek
So we would not expect his remarks to be critical of MS.
IMO this issue is not how easy or how hard it is to write for the MS API. The causation from MS critics is that MS makes it hard to third parties to write cross-platform code. That would only be an ethical issue unless some real proof could be given that MS harmed other companies by monopolistic practitioners. Thus would mean what they say about their products.
If a very large cooperation talks about a new product, and if the product could posh others out of the marketplace, it is a violation of free speech if the statements were both false and are intended to defame or destroy the reputation of others. Or to control the market with falsehood.
Aside from what the MS code does, MS has go to the point of preventing the distribution of code that it had once provided. Or preventing others from making needed adjustment to the code. Somebody already mentioned the potential problem with Uni Code in the API.
Here is a relevant story the came up just six months ago. (November 2009)
PCWorld
China Rules Microsoft Violated Intellectual Property Rights
Owen Fletcher, IDG News Service
Nov 16, 2009 11:10 pm
A Beijing court has ruled that Microsoft violated a Chinese company's intellectual property rights in a case over fonts used in past Windows operating systems, state media said Tuesday.
The Beijing Number One Intermediate People's Court this week ordered Microsoft to stop selling versions of Windows that use the Chinese fonts, state broadcaster CCTV said. Microsoft plans to appeal the case, a company representative said in a statement.
The ruling comes as Barack Obama visits China for his first time as U.S. president. The visit has brought renewed focus on tensions over piracy and the trade of high-tech products between the countries. A U.S. business association this week appealed to Obama for further efforts to protect intellectual property rights in China, where pirated copies of DVDs and computer software including Windows are widely sold on streets and in bazaars.
....
Full Story (http://www.pcworld.com/article/182333/china_rules_microsoft_violated_intellectual_property_rights.html)
My question:
Would you say the above PC World story free of bias?