text:
Event ContactsPaid membership required to see this information
Event WebsitePaid membership required to see this information
Event Description
U.S. Travel Association's IPW is the travel industry's premier international marketplace and the largest generator of travel to the U.S. - it is NOT a typical trade show. In just three days of intensive pre-scheduled business appointments, more than 1,000 U.S. travel organizations from every region of the USA (representing all industry category components), and close to 1,200 international and domestic buyers from more than 70 countries, conduct business negotiations that result in the generation of more than $3.5 billion in future Visit USA travel. At IPW, buyers and sellers are able to conduct business that would otherwise be generated only through an exhaustive number of around-the-world trips.
U.S. Suppliers of USA travel products and destinations
International Buyers, Domestic Buyers and International Journalists
IPW provides a cost-effective marketplace that offers "one-stop shopping" for pre-qualified international and domestic buyers to learn about and purchase U. S. travel products and services from eligible U. S. suppliers.
About U.S. Travel:
We uniquely leverage the collective strength of everyone who benefits from travel to grow their business beyond what they can do individually. Through board, committee and council involvement you can help yourself while making a difference for the industry.
We assist members with programs and platforms to help promote travel to and within the U.S., especially through International Pow Wow (IPW), the pre-eminent international trade show bringing travel to America.
We lead industry-wide initiatives to grow and sustain travel and ensure the freedom to travel. Through our efforts, travel is better understood by opinion leaders, policymakers and media as essential to the economy, security, image and well-being of the U.S. and travelers.
We provide widely-respected, industry-leading economic data, information, analysis and travel trends to benefit our members and support industry efforts involving advocacy and promotion.
Not sure if you want to exhibit at or attend the International Pow Wow 2014? See the panels below to get the information you need to make an informed decision.
Event Details
Conference/Event Dates: | 04/05/2014 - 04/09/2014 |
Classification: | B2B |
Primary Industry: | Travel |
Other Industries: | Associations: Trade / Professional, Business, Travel |
Estimated Attendance: | 5,500 |
Audience: | IPW is the travel industry's premier international marketplace. It is a business appointment based show that brings together: U.S. travel organizations from across the country representing all categories of the industry International and domestic leisure buyers International meeting and incentive buyers International and domestic journalists International Advisory Committee representatives Visit USA representatives U.S. Government Commercial Service employees |
Notes: | Number of Booths: 1,200 Exhibitors: U.S. Suppliers of USA travel products and destinations Attendees: International Buyers, Domestic Buyers and International Journalists Total Attendance Expected 5,500 Number of Countries Represented 70+ |
Venue: | Venue TBD |
Venue Type: | Indoor - Convention Center |
Show Owner: | U.S. Travel Association |
Sponsorship: | Yes |
Sponsorship Details: | Whether launching a new product or service or keeping your brand top-of-mind, IPW delivers an audience unmatched by any other international trade show venue. U.S. Travel offers cost effective opportunities to maximize your exposure to the 5,500 buyers, media and suppliers. In addition to on-site branding, many opportunities include extensive pre- and post benefits to extend your visibility and branding efforts. |
Booth Details
Booth Size | Booth Cost | Available Amenities | ||||
Single Booth | Member: $225; Non-Member: $275 | Electricity: | Yes | - Unknown Price | ||
Double Booth | Member: $450; Non-Member: $500 | Water: | n/a | |||
Triple Booth | Member: $675; Non-Member: $725 | Generator: | n/a | |||
Prices are subject to change. | Marketing Vehicles Allowed: | Call | ||||
Other Booth Sizes Available: No |
Advance NetworkingHow do I show up here?
Personal NotesAdd a note here, it is only visible by you.


text:
Kathie Lee Gifford Shares Her Fat-Freezing Process With the World
Viewers of the Today Show's fourth hour might be familiar with Kathie Lee's names for her stomach area: her "pooch," the "menopot," and even the "Snooki Pouf."
Today, she shared her story (complete with graphic images!) of her process to get rid of it.From the close-ups of KLG's belly to the story of the last time she had "fuzz and a seed" in stuck in her bellybutton, this is NSFlunch.
[There was a video here]

subset: commoncrawl


text:
ELIZABETH JACKSON: Millions of people are expected to watch the biggest event on Australia's motorsport calendar tomorrow.
But a coalition of health groups is campaigning against the Bathurst 1000's alcohol sponsorship and advertising.
Some of the teams are named after whiskey and bourbon brands, and the health groups say that encourages drinking and driving.
Tom Nightingale reports.
(Car engines revving)
TOM NIGHTINGALE: As cars are driven at up to 300 kilometres an hour at Mount Panorama in tomorrow's race, organisers expect about 3 million people will be watching on television.
But Curtin University's Professor Mike Daube says alcohol will be far too prominent.
MIKE DAUBE: You will just see shot after shot after shot of fast cars promoting alcohol, linking speed, cars and alcohol, which is the worst kind of message to get across.
TOM NIGHTINGALE: Professor Daube co-chairs a coalition of health groups pushing for less alcohol advertising with sports including football and rugby league.
The National Alliance for Action on Alcohol says it's particularly damaging for alcohol brands to link with motor sport.
MIKE DAUBE: Would it kill the sport? No it wouldn't.
There are other sponsors around, and at the end of the day, we should not be using sports sponsorship to promote alcohol, particularly during the daytime when so many kids are watching.
TOM NIGHTINGALE: The health groups are angry at a team sponsored by a bourbon brand for selling team caps and shirts for children.
A spokesman for V8 Supercars says the merchandise is a separate range to that sold for adults, and doesn't include liquor branding.
Professor Daube says that's rubbish:
MIKE DAUBE: It says "JBR (the team) kids."
And it's got a cap, it's got a t-shirt, it's got another t-shirt -
TOM NIGHTINGALE: But that's JB without mentioning any alcohol brand though.
MIKE DAUBE: I think you'd have to be living on another planet not to be aware that this is part of a Jim Beam promotion.
TOM NIGHTINGALE: Alcohol brands sponsor three of the 18 teams, and a V8 Supercars spokesman says the drivers set a positive and alcohol-free example to the Australian public.
He says that includes more than 1,000 school visits a year promoting road safety.
The race is one of the biggest television sport events of the year, and the health alliance is calling for changes to advertising rules.
MIKE DAUBE: You don't normally show alcohol ads during the daytime.
But the loophole is that doesn't apply to sports sponsorship and it doesn't apply to alcohol advertising during sponsored events.
So essentially, you can do whatever you like during a televised sponsored event by way of promoting alcohol.
TOM NIGHTINGALE: The code for commercial television advertising is due to be reviewed next year.
A spokesman for the Communications Minister, Stephen Conroy, says it'll question whether television advertising rules are in line with community standards.
ELIZABETH JACKSON: Tom Nightingale reporting.
The full story...
Health groups: Bathurst 1000 promoting too much booze
Tom Nightingale reported this story on Saturday, October 6, 2012 08:23:00
Related Links
ABC takes no responsibility for the sites these links take you to.
- Race through 50 years of history at Bathurst's Mount Panorama
- Bathurst 1000 celebrates the big 5-0
- The Bathurst 'Great Race' is 50 this weekend - and we talk to a man who's been to 30 of them! .. (audio)


text:
Easily Distracted Writers May Like Ommwriter Dana I
Herraiz Soto & Co Ommwriter Dana I
PCWorld Rating
Pop-up alerts, system tray balloons, animated banners, and blinking taskbar icons all conspire to steal our focus. As you sit in front of your screen trying to thread words together into something that makes sense, the distractions of a modern operating system can be maddening. Ommwriter Dana I is one free and stylish text editor that tries to offer an alternative: A full-screen writing environment with zero distractions. It's just you and your text, letting you finally focus on what you're trying to say. Or so, at least, the theory goes.
I really wanted to like Ommwriter. It is easy to see how much work went into its unique design: Ommwriter's creators say, "We believe that if you are in a beautiful and inspiring environment, you will write and create the beautiful and the inspiring." To this effect, Ommwriter Dana I ships with three low-key background patterns, and three looping ambient soundtracks. Ommwriter Dana II, the paid version for which you can set your own price, ships with eight background patterns and seven soundtracks. Pick your background image and soundtrack, stick your earbuds in, and let the world fade away as you compose your literary hit.
Unfortunately, it doesn't really work like that. As a writer, I love the idea of a distraction-free full screen editor. In fact, I use one every day: WriteMonkey. But Ommwriter Dana I is so eager to impose its distraction-free vision, it takes things too far. For example, I have a dual-monitor workstation. As I write, WriteMonkey takes up one full monitor, leaving the other one open for me to use for reference material. If I find the other monitor distracting, I simply turn it off. Ommwriter Dana I doesn't give me that choice: It detects both monitors, and simply blacks out the other monitor. There is no way for me to use the other monitor, and no way to disable this functionality.
Here's another example: Working in full-screen is great most of the time, but sometimes you need to have the window take up just half of the screen. Let's say you like roughing in a draft in a Notepad-like environment, and then switch to full-screen to flesh it out. Ommwriter Dana I does not let you do this: You either use it full-screen, or you don't use it at all.
Most writers want to have an idea of how many words they've written so far. Both WriteMonkey and Ommwriter include a word count feature; WriteMonkey lets you either switch it on or off, or have it fade away while you work and reappear once you haven't been typing for a few seconds. It also lets you configure a session target, so you can visually see your progress. Ommwriter's word count appears at the bottom of the text area, and fades away when you're typing, along with all other window chrome. Unfortunately, the only way to bring it back is to reach for your mouse and give it a shake--pretty distracting.
Ommwriter is truly beautiful to look at and listen to. If your writing style exactly matches the artistic vision of its creators, you're in luck. Otherwise, you should probably look for a more configurable full-screen editor. Writing in full-screen mode is important enough to shop around.
Note: The Download button takes you to the vendor's site, where you can download the latest version of the software.
--Erez Zukerman


text: An awesome guy made an insane Thor hammer that smashes everythingCasey Chan11/04/13 8:35pmFiled to: coolthors hammermjolnirawesomesuperheroescomic booksthor629EditPromoteShare to KinjaToggle Conversation toolsGo to permalink GIF This ridiculously awesome man made version of Thor's hammer Mjölnir is so impressive that even our most Thor-like human Chris Hemsworth would have trouble swinging it around. Though it's not quite the weight of 300 billion elephants, it's the closest thing to Mjölnir on Earth. That's because it's made from 10 separate pieces of steel alloyed with chromium and molybdenum. At its heaviest, it can weigh over 200 pounds. Advertisement This version of Thor's hammer was made by master swordsmith Tony Swatton. He's a Picasso when it comes to recreating movie props like Wolverine's claws, swords from Game of Thrones and weapons of the Teenage Mutant Ninja Turtles.The 11-inch long, 5-inch high and 4-inch wide hammer is beautifully detailed (stick around to watch them etch the hammer) and weighs 20 pounds when hollow. When they fill it up to make it solid, it'd be a 200 pound beast.Reply62 repliesLeave a reply


text:
A-Z | Portals | Course Login | Web Mail | University Home
3525 W. Oxford AvenueDenver, CO 80236
Adult ServicesMaternity ServicesBehavioral Health ServicesDental Services
Monday 8 a.m. - 5 p.m.Tuesday 8 a.m. - 5 p.m.Wednesday 10 a.m. - 6 p.m.Thursday 8 a.m. - 5 p.m.Friday 8 a.m. - 5 p.m.
4107B S. Federal Blvd.Englewood, CO 80110
Pediatric ServicesBehavioral Health Services
Monday 10 a.m. - 6 p.m.Tuesday 8 a.m. - 5 p.m.Wednesday 10 a.m. - 6 p.m.Thursday 8 a.m. - 5 p.m.Friday 8 a.m. 5 p.m.
Sheridan Health Services is a 501(c)(3) federally-qualified nurse-managed clinic, focused on a patient-centered medical home philosophy. Offering a variety of services to encompass all of a patient's needs, we strive to provide complete care to individuals with a focus on wellness and disease prevention.
Sheridan Health Services has two clinic locations:
A variety of health care services are offered at both locations. We accept Medicaid, CHP+/Colorado Access, Medicare, other private insurance, and self-pay.
Read about our staff, history and current news and events here.
View our services and locations.
Call for questions or to schedule an appointment.
Sheridan Health Services Outreach and Enrollment Specialists Dora Arellano (left) and Yubi Arismendi (right) received awards from the Sheridan School District and Parent Organization. They have been very involved in spreading the word about how to enroll in Colorado Health Exchange and the benefits that Sheridan Health Services can provide.
© The Regents of the University of Colorado, a body corporate. All rights reserved.
Accredited by the Higher Learning Commission. All trademarks are registered property of the University. Used by permission only.


text:
Home › Forums › General Forums › Philosophy & Technique › Bear Bag butCord Storage
Apr 6, 2012 at 7:41 am #1288380
Using a bear bag for the first time this weekend, so I just picked up a 50' length of orange 2.75mm "Glocord" to use as my line. Here's the question – how do I store it? I know several people just toss it in the rock sacks, but I was thinking of using my stake bag for that, so it wouldn't be dedicated storage. Ideally, I'd like to keep it from getting tangled.
The cord came on a small plastic spool – this might be heresy, but is there any problem with keeping it/storing it on that while hiking? It's not heavy, keeps it from getting tangled, and seems like it'd save some time cleaning it up. Might even be able to double as a rock sack if necessary.
Maybe there are already some people who do this, but I tired searching for it and didn't come up with anything. Would love to hear your thoughts.
Also, apparently a bit of a typo in the title. Can't seem to edit the thread title itself, though.
Apr 6, 2012 at 1:15 pm #18644462.75 is pretty thin for a bear bag cord. I have no doubts it'll support all the food you could want, but I'd expect it to 'saw' into the tree limb. That damages the cord, the tree, and could possibly get your bag stuck in the sap-filled saw-mark. I personally eat the weight and use 6mm. Not everyone will agree with that, of course.
As for storage: I have had success storing military-issue '550' nylon cord in a cut down paper towel tube. I spooled it around my arm (palm to elbow) then folded it in half. If its a good fit the friction holds it in. Otherwise there's a taped-on paper cap. This may or may not be lighter than your spool.
I typically just suck it up and do a little untangling before hanging the food.Apr 6, 2012 at 3:38 pm #1864516John,
If you are going to hang and you are NOT in a "Smart Bear" area, my recommendation is to go with 2 cords. The Ring Line has a simple pulley or a belay ring attached to one end. Throw it over the limb (you may need a rock bag for throwing mass), let the ring fall to the ground, thread Line Two through the ring. Pull the ring up no closer than 3' of the limb and tie it off, while keeping both ends of Line Two on the ground. Tie your food to one end of the Line Two, and haul it up. Tie off the Ring Line and Line Two high and away from each other. (And be gentle on the tie-off with this thin cord, or you risk damaging thin bark or young trees.)
To retrieve the Ring Line, lower your food, undo your Ring Line tie-off, then pull on both ends of Line Two. (Trying to pull the ring back around a limb risks getting it stuck.)
Apr 6, 2012 at 3:44 pm #1864519I store/backpack with mine on a small, plastic spool. Worth the ounce to me.
Apr 6, 2012 at 8:08 pm #1864587I use the knotless PCT method, with the PVC pipe section. So I coil it up, stick the coil through the PVC, and then use the 'biner to hook through the two ends. Keeps it neat and tidy, no tangles, and everything is stored together there.
Apr 7, 2012 at 2:54 am #1864647My personal DIY food bag is longer and thinner than most of the commercially available ones. It's sized so that my cook kit fills it out at one end. I wind my line (I use paracord right now; I had it on hand when I made the bag) around the bag itself, leave a bit, wrap once back under and through the wound line, and clip off to the bag's drawstring.
It's worked pretty well so far, though my line is twisted a bit from the winding/unwinding of the last three trips. We'll see how it holds up over the long haul…
You must be logged in to reply to this topic.


text:
On Air
User login |
Finn's Revolution PlaylistsFinn's Revolution playlist for 12/25/2012By Finn on Wed, 12/26/2012 - 4:07pmEnough Holiday tunage to make you festively sick... Enjoy! Finn's Revolution playlist for 10/02/2012By Finn on Wed, 10/03/2012 - 8:02amNew music, plus LIVE music from Say "NO!" To Architecture & Cyberbully! Low-Fi Madness!! We party down on College Radio Day, yep!!! Finn's Revolution playlist for 09/18/2012By Finn on Tue, 09/18/2012 - 11:22amGuitar maestro DANNY AMIS (DADDY-O GRANDE!) of LOS STRAITJACKETS jumps in the ring with me, but, unfortunately, Theremin virtuoso DORIT CHRYSLER won't. Finn's Revolution playlist for 09/04/2012By Finn on Tue, 09/04/2012 - 5:01pmBack to School! Can't Wait! .. uh... right? Finn's Revolution playlist for 08/21/2012By Finn on Wed, 08/22/2012 - 9:15amThis is RADIO CLASH - your requests!! #Strummer60 Finn's Revolution playlist for 08/14/2012By Finn on Tue, 08/14/2012 - 9:16amCrafty singer/songwriter & yeproc recording artist ELENI MANDELL helps me see the future... Finn's Revolution playlist for 07/31/2012By Finn on Tue, 07/31/2012 - 5:27pmAhh... the evening edition... with guest EMMA BROWNING of Second Head.. movie tickets... anything could happen... Finn's Revolution playlist for 07/31/2012By Finn on Tue, 07/31/2012 - 6:57amRevolution in the morning? Hell yeah! Finn's Revolution playlist for 07/24/2012By Finn on Tue, 07/24/2012 - 5:21pmTonight jazz chanteuse and Oakdale native JANE MONHEIT talks with me about her benefit performance at The Gateway Playhouse for The Bay Area Friends of the Fine Arts http://baffa.org/ and Brian O'Haire and I talk about Wednesday night's OWS movie in Huntington http://www.cinemaartscentre.org/event/ows-corporations-cant-cry/ PLUS some music from DOC POMUS! Finn's Revolution playlist for 07/17/2012By Finn on Tue, 07/17/2012 - 4:56pmTonight, Stony Brook Film Festival director ALAN INKLES talks movies; film director STAN WARNOW talks about his new film about his dad, crazy & brilliant composer/inventor RAYMOND SCOTT. Plus tickets for The Film Fest, Buckwheat Zydeco, & Pure Prairie League... tune in! Finn's Revolution playlist for 07/10/2012By Finn on Tue, 07/10/2012 - 4:54pmSinger DELANEY HAFENER joins us to preview some tunes for her forthcoming performance at this weekends Great South Bay Music Fest, and we speak to "Sing Your Song" film makers GINA BELAFONTE & SUSANNE ROSTOCK about the legendary Harry Belafonte. It's showing WEDNESDAY night at The Cinema Arts Centre in Huntington. Tune in! |


text:
North Korea prepped for third nuclear test
North Korea has apparently finished preparations for a third nuclear test and is awaiting a political decision to go ahead, a South Korean nuclear expert said on Wednesday.
The expert also said the communist state is likely to use highly enriched uranium (HEU) for any test, and may have produced enough of it to make between three and six bombs in addition to its plutonium stockpile.
There has been widespread speculation the North will stage a test following its failed launch of a long-range rocket last month, which drew condemnation from the United Nations Security Council.
Similar condemnation of launches in 2006 and 2009 was followed by atomic weapons tests. Satellite photos of the Punggye-ri test site in the north-east show work in progress.
"The North has apparently finished technical preparations for a third nuclear test. What is left now is a political decision," the expert told journalists on condition of anonymity.
South Korean and US intelligence authorities are closely monitoring activities at Punggye-ri, he said, adding about 3 000 people were involved in the North's nuclear programme.
The North shut down its plutonium-producing reactor at Yongbyon in 2007 as part of an international disarmament deal which it later abandoned.
In 2010 it disclosed to visiting US scientists a uranium enrichment plant at Yongbyon with 2 000 centrifuges.
The scientists have said the plant, ostensibly to feed a light water reactor for power generation, could easily be reconfigured to make weapons-grade material.
The North is thought to have produced enough plutonium for six to eight weapons before the shutdown.
The South Korean expert said 2 000 centrifuges would be capable of producing 40kg of HEU every year. Assuming the enrichment plant became operational in 2009, it could have produced enough HEU for three to six bombs.
He said analysis of xenon isotopes which reach the atmosphere two to four days after a test could establish whether the device was a plutonium or an HEU bomb.—AFP


text:
Sign In
Contact Us
In just a few quick steps, customize your own box of Crayola Crayons, create an Art Case, or draw your own Stuffed Animal. It's easy and fun!
Add To Favorites
Don't be afraid of the monster outside, make your own happy monster stopping by to say hello!
Clean the inside of a window in your house. Maybe your bedroom window or living room window. Be very careful when doing anything with glass, it could break and become a sharp cutting hazard. Always have adult supervision for this craft idea.
Using Crayola® Window Crayons, draw a fun, silly monster on the inside of the window.
Wave "hello" to your new friend every time you come in to the room.
Let's make something!
Who's a bug watcher? There are so many fascinating insects and arachnids to discover! Create several Crawling Creatures
Add To Favorites Processsing...Processsing...
Make funky characters! Or friends' faces! Crumple up newspaper and cover it with Crayola Model Magic®! How goofy can you
Make colorful plastic eggs even more fun using Model Magic®, your imagination, and simple marbling and modeling techniqu
Create your own fun games using Model Magic® and colorful plastic eggs! Start with these ideas and then invent original
Let kids express their imaginary selves by role playing wearing masks they created themselves.
What frightens you? Monsters? The dark? Something under your bed? Show courage by wearing your fears on your head—with a
Set the sp-o-o-o-ky m-o-o-o-d for trick-or-treat night! Prop this branch mobile in a planter, prop it up in front of a w
Jazz up the fall with this unique pumpkin. Children become jacks of all arts as they create textured crayon rubbings, cu


text:
Abstract Essence
Love Enough
July 2013
Released: 2013, Metalgate Productions Rating: 2.0/5 Reviewer: Metal-Rules.com UK Team Abstract Essence from Czech Republic makes it pretty clear that they don't want to be put in a box. They joggle most genres possible and try to put it all together on a concept album. Let's just say that we are dealing with symphonic metal with splashes of grindcore, opera, and electro and I don't think harm has been done. So because of the mega mix of different genres Abstract Essence is an original band with never-heard-anything-like-this material? No. This is what most avant-garde bands sounds like when it comes to playing with the theatrical spectres of black- and progressive metal and have been listening to Cradle of Filth in their teens. And it is a mess. With song titles such as "Divine Whore" and "Good Day for a Funeral Blowjob" it is hard to tell if this is all a joke, a big drug trip or an angry man's rage against his ex-girlfriend. Claiming that this is a concept album about love and seduction I don't feel slightly seduced not to mention very far from loving. It is extremely difficult to take this record serious. Music, vocals and lyrics collapse together and it feels like you, as the listener, are being swirled around. I understand the need to challenge the listener, but it never really works out. The vocals are not doing much the combine the musical mess. The accent is bad and no matter what language you wanna sing in, it must be done in a language you are confident with. The high pitching is annoying, the female vocals are just a tacky touch and the screaming growling needs a lot of work. You never become familiar with the vocals as it is all over you and then vanishing again to let another vocal take over. Avantgarde is not for everyone, but it can be more appealing if there is a lot more flow to the music and vocals. By Ellen Norvang
Track Listing
01. Overture
OndRáš Zbránek - Lead vocals
Other reviews
» Love Enough Next review: » Aerosmith - Box Of Fire |


text:
This article and topic will probably inspire reluctance from code gurus. But, even after 7 years and a massive use in today's Windows-centric world, I often see people wondering the simplest questions about COM.
Microsoft introduced several years ago the ATL library, hoping that ready-to-use macros would simplify the COM development process. But in practice, the macros tend to obfuscate what the code really does and is expected to do. Furthermore, one obvious thing at the basis of this article is that ATL macros produce un-debuggable code. Macros are expanded by the C/C++ preprocessor, which means it's virtually impossible to figure out what might be wrong in any ATL-based code.
That's why I shall in this article, show how to write working COM components from scratch, and without a single macro. Hope you find it useful.
The remainder of this article provides three (hopefully reusable) sample COM implementations :
Plus several working test environments (C/C++ and VB).
You'll find above, a working simplecomserver.zip package which is the resulting code for the following steps.
Start VC6/7, create a new project called simplecomserver. Select the WIN32 dynamic library project wizard, and opt for the simple DLL project option.
So far, you should have a project with stdafx.h/cpp precompiled headers, plus simplecomserver.cpp with this code:
// simplecomserver.cpp : Defines the entry point for the DLL application. // #include "stdafx.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; }
Now we are going to declare our COM interface. Let's create a new .idl file (simplecomserver.idl), and paste what is below into it:
import "wtypes.idl"; [ uuid(6F818C55-E6AD-488b-9EB6-511C0CCC0612), version(1.0) ] library LibCOMServer { importlib("stdole32.tlb"); importlib("stdole.tlb"); [ uuid(7F24AABF-C822-4c18-9432-21433208F4DC), oleautomation ] interface ICOMServer : IUnknown { HRESULT Name([out] BSTR* objectname); } [ uuid(6AE24C34-1466-482e-9407-90B98798A712), helpstring("COMServer object") ] coclass CoCOMServer { [default] interface ICOMServer; } }
We have an interface inside an object (coclass keyword), itself part of a set of objects (there's only one here) belonging to a type-library (library keyword). Both interfaces, objects and type-libraries have ids that uniquely identify them: it's produced by a tool such as guidgen.exe (available from MSDEV / Tools menu).
Add simplecomserver.idl to your project files, right-click on it and compile it. This produces the type-library in the Debug folder. simplecomserver.tlb is a binary-compiled IDL file, nothing else. The type library is what applications and languages are going to read and parse, to extract interface names, method names, parameter qualifiers and so on at run-time. That's why the type library is such an important piece to worry about.
Since we provide a C/C++ implementation for this COM server, we are also going to ask the type-library compiler to produce an interface header to derive from. Right-click on simplecomserver.idl, select Settings, then from the MIDL tab provide the "Output header file name" field with the simplecomserver_i.h value. Compile the IDL file again.
This auto-generated header file is somewhat complex to read, because it carries a lot of implementation details the COM library could not hide. But we don't really have to care about it. Let's just remember the header file is a class declaration we are going to implement. That's easy so far, so let's create a new header file, simplecomserverImpl.h, and provide it with this declaration:
#pragma once // ICOMServer interface declaration /////////////////////// // // class CoCOMServer : public ICOMServer { // Construction public: CoCOMServer(); ~CoCOMServer(); // IUnknown implementation // virtual HRESULT __stdcall QueryInterface (const IID& iid, void** ppv) ; virtual ULONG __stdcall AddRef() ; virtual ULONG __stdcall Release() ; // ICOMServer implementation // virtual HRESULT __stdcall Name(/*out*/BSTR* objectname); private: // Reference count long m_cRef ; };
If you compare this with what we declared in the .idl file a couple of minutes ago, you'll notice it looks much the same and is just expressed 100% with C/C++ syntax. We can also note 3 methods there from the IUnknown interface. Those methods help to manage the COM server life cycle by providing routing capabilities (QueryInterface), and safe reference counting (AddRef, Release). But there's no mystery or hidden trick, we are going to implement these methods right now. Let's create an implementation file simplecomserverImpl.cpp, and paste the code below:
#include "stdafx.h" #include <objbase.h> // #include "simplecomserver_i.h" #include <atlbase.h> // CComBSTR #include "simplecomserverImpl.h" static long g_cComponents = 0 ; // Count of active components static long g_cServerLocks = 0 ; // Count of locks // // Constructor // CoCOMServer::CoCOMServer() : m_cRef(1) { InterlockedIncrement(&g_cComponents) ; } // // Destructor // CoCOMServer::~CoCOMServer() { InterlockedDecrement(&g_cComponents) ; } // // IUnknown implementation // HRESULT __stdcall CoCOMServer::QueryInterface (const IID& iid, void** ppv) { if (iid == IID_IUnknown || iid == IID_ICOMServer) { *ppv = static_cast<ICOMServer*>(this) ; } else { *ppv = NULL ; return E_NOINTERFACE ; } reinterpret_cast<IUnknown*>(*ppv)->AddRef() ; return S_OK ; } ULONG __stdcall CoCOMServer::AddRef() { return InterlockedIncrement(&m_cRef) ; } ULONG __stdcall CoCOMServer::Release() { if (InterlockedDecrement(&m_cRef) == 0) { delete this ; return 0 ; } return m_cRef ; }
This code skeleton is enough for every interface you may implement until the end of time. Of course, now we are going to add a custom implementation of ours:
// // ICOMServer implementation // HRESULT __stdcall CoCOMServer::Name(/*out*/BSTR* objectname) { if (objectname==NULL) return ERROR_INVALID_PARAMETER; CComBSTR dummy; dummy.Append("hello world!"); // Detach() returns an allocated BSTR string *objectname = dummy.Detach(); return S_OK; }
Our COM server is implemented so far. Of course anyone who heard of COM in his life knows that a COM server needs to be registered before being used. Indeed the client application, whatever application it is, is going to use indirectly the COM library, which in turns looks up a dictionary of known COM servers in the registry (the HKEY_CLASSES_ROOT\CLSID key).
So what we are going to do is make sure that our build process also automatically registers our COM server. This is going to require a few steps and you'd better attach your seat belt! Of course, the fine thing is that we will never be required to create the many registry keys by hand, I mean by raw and stupid registry-related code. There would be some work there since we need to register the COM object itself, the type-library, and the interface.
Let's begin by adding a few exported functions. Those exported functions are available from outside and allow the registration tool (ever heard of regsvr32.exe?) to request for registration. That's the DllRegisterServer function. Let's add a new type of file: simplecomserver.def and paste what's below in it:
LIBRARY "simplecomserver" DESCRIPTION 'Proxy/Stub DLL' EXPORTS DllCanUnloadNow @1 PRIVATE DllGetClassObject @2 PRIVATE DllRegisterServer @3 PRIVATE DllUnregisterServer @4 PRIVATE
A .def file just tells the linker to let the listed functions be available from outside. For instance, you can use the dumpbin /exports command line (MSDEV tool, requires the MSDEVDIR in the path), or even the Dependency Walker (another MSDEV tool) to see them as soon as this file is added to the project files, and the project built.
dumpbin /exports
Let's provide implementation for the 4 exported functions:
/////////////////////////////////////////////////////////// // // Exported functions // // // Can DLL unload now? // STDAPI DllCanUnloadNow() { if ((g_cComponents == 0) && (g_cServerLocks == 0)) { return S_OK ; } else { return S_FALSE ; } } // // Get class factory // STDAPI DllGetClassObject(const CLSID& clsid, const IID& iid, void** ppv) { // Can we create this component? if (clsid != CLSID_CoCOMServer) { return CLASS_E_CLASSNOTAVAILABLE ; } // Create class factory. CFactory* pFactory = new CFactory ; // Reference count set to 1 // in constructor if (pFactory == NULL) { return E_OUTOFMEMORY ; } // Get requested interface. HRESULT hr = pFactory->QueryInterface(iid, ppv) ; pFactory->Release() ; return hr ; } // // Server registration // STDAPI DllRegisterServer() { HRESULT hr= RegisterServer(g_hModule, CLSID_CoCOMServer, g_szFriendlyName, g_szVerIndProgID, g_szProgID, LIBID_LibCOMServer) ; if (SUCCEEDED(hr)) { RegisterTypeLib( g_hModule, NULL); } return hr; } // // Server unregistration // STDAPI DllUnregisterServer() { HRESULT hr= UnregisterServer(CLSID_CoCOMServer, g_szVerIndProgID, g_szProgID, LIBID_LibCOMServer) ; if (SUCCEEDED(hr)) { UnRegisterTypeLib( g_hModule, NULL); } return hr; } /////////////////////////////////////////////////////////// // // DLL module information // BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void* lpReserved) { if (dwReason == DLL_PROCESS_ATTACH) { g_hModule = (HMODULE)hModule ; } return TRUE ; }
A few notes here: first of all, the 4 functions are prefixed with STDAPI, that's just to tell the linker to export them without any C++ mangling (otherwise @ and numbers would appear around the function names, somewhat unnecessary as for now). We also provide a new DllMain implementation replacing the default code provided by the class wizard a couple of minutes ago. Now you need to remove what the class wizard generated for us in simplecomserver.cpp (otherwise the linker would complain of a duplicate DllMain() implementation).
DllRegisterServer() and DllUnregisteServer() are the entry points for the registration. At this point, we are not going to dive much into details, let's just remember that the type-library knows the ins and outs of the COM server and will perform most of the actual registration itself.
And we have DllGetClassObject(). This one is the entry-point used by the outside to create an instance of our COM server. For odd reason, those who invented COM wanted to have intermediate objects to play with. So let their be the class factory. This object behaves much like a COM object itself, although it doesn't have an associated IDL file. DllGetClassObject() is called by the COM plumbing on behalf of the outside application, and expects in return a valid pointer to an IClassFactory interface. This interface (again an interface is a simple class) implements the CreateInstance() construction method, and that one actually instantiates our COM server. As you can see, so far there's not much to worry about the class factory. We just copy/paste this code in simplecomserverImpl.cpp:
/////////////////////////////////////////////////////////// // // Class factory // class CFactory : public IClassFactory { public: // IUnknown virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv) ; virtual ULONG __stdcall AddRef() ; virtual ULONG __stdcall Release() ; // Interface IClassFactory virtual HRESULT __stdcall CreateInstance(IUnknown* pUnknownOuter, const IID& iid, void** ppv) ; virtual HRESULT __stdcall LockServer(BOOL bLock) ; // Constructor CFactory() : m_cRef(1) {} // Destructor ~CFactory() {;} private: long m_cRef ; } ; // // Class factory IUnknown implementation // HRESULT __stdcall CFactory::QueryInterface(const IID& iid, void** ppv) { if ((iid == IID_IUnknown) || (iid == IID_IClassFactory)) { *ppv = static_cast<IClassFactory*>(this) ; } else { *ppv = NULL ; return E_NOINTERFACE ; } reinterpret_cast<IUnknown*>(*ppv)->AddRef() ; return S_OK ; } ULONG __stdcall CFactory::AddRef() { return InterlockedIncrement(&m_cRef) ; } ULONG __stdcall CFactory::Release() { if (InterlockedDecrement(&m_cRef) == 0) { delete this ; return 0 ; } return m_cRef ; } // // IClassFactory implementation // HRESULT __stdcall CFactory::CreateInstance(IUnknown* pUnknownOuter, const IID& iid, void** ppv) { // Cannot aggregate. if (pUnknownOuter != NULL) { return CLASS_E_NOAGGREGATION ; } // Create component. CoCOMServer* pA = new CoCOMServer ; if (pA == NULL) { return E_OUTOFMEMORY ; } // Get the requested interface. HRESULT hr = pA->QueryInterface(iid, ppv) ; // Release the IUnknown pointer. // (If QueryInterface failed, component will delete itself.) pA->Release() ; return hr ; } // LockServer HRESULT __stdcall CFactory::LockServer(BOOL bLock) { if (bLock) { InterlockedIncrement(&g_cServerLocks) ; } else { InterlockedDecrement(&g_cServerLocks) ; } return S_OK ; }
Guess what, we are done!
The registration is either performed by an explicit regsvr32 <path>\Debug\simplecomserver.dll shell command, or by adding a Custom Build Step in your project.
regsvr32 <path>\Debug\simplecomserver.dll
Once the registration has succeeded, you can look up the new keys in the registry:
+ HKEY_CLASSES_ROOT + COMServer.object + CLSID = {6AE24C34-1466-482e-9407-90B98798A712} + CLSID + {6AE24C34-1466-482e-9407-90B98798A712} = "COMServer object" + InProcServer32 = <path>\simplecomserver.dll + Interface + {7F24AABF-C822-4c18-9432-21433208F4DC} = "ICOMServer" + TypeLib = {6F818C55-E6AD-488B-9EB6-511C0CCC0612} + TypeLib + {6F818C55-E6AD-488b-9EB6-511C0CCC0612} + 1.0 + 0 + win32 = <path>\simplecomserver.tlb
I hope all this registry mess is clearer to you now. Basically you can see that registering a COM component is just a matter of adding the IDs of interfaces, objects, and type-libraries in the right places. Again, no hidden trick here.
For any reason, issues may occur while performing the registration and you may not get the successful "DllRegisterServer in simplecomserver.dll succeeded." message. But we don't have to worry, here are the steps to debug the registration:
If you want to un-register your component, just add the -u option in the regsvr32 shell command. As a result, DllUnregisterServer() will be called instead.
Anyone interested to test the COM server with a C/C++ client application, here is the code to do so (see the TestSimplecomserver.dsp project in the zip package):
#include <atlbase.h> #include "..\simplecomserver\simplecomserver_i.h" // interface declaration #include "..\simplecomserver\simplecomserver_i.c" // IID, CLSID ::CoInitialize(NULL); ICOMServer *p = NULL; // create an instance HRESULT hr = CoCreateInstance( CLSID_CoCOMServer, NULL, CLSCTX_ALL, IID_ICOMServer, (void **)&p); if (SUCCEEDED(hr)) { // call the (only) method exposed by the main interface // BSTR message; p->Name(&message); // if everything went well, message holds the returned name // // ... CString szMessage; AfxBSTR2CString(message, szMessage); AfxMessageBox(szMessage); // don't forget to release the stuff ::SysFreeString(message); } p->Release(); ::CoUninitialize();
The limitations of our COM server?
We are not going to build the automation-enabled COM DLL from scratch, since it's only a minor change over the simple COM server DLL. However, you can as an exercise try to do so.
The resulting code is provided in the automcomserver.zip package.
What we are going to do is replace the IUnknown interface support by IDispatch support (which itself inherits IUnknown, this is the reason why the 3 methods QueryInterface(), AddRef() and Release() won't go away). But then why? Basically the IDispatch interface provides a convenient programmatic way to parse the type-library, and list the method names exposed by an anonymous IDispatch-derived interface. This is aimed to provide what's known as late binding. In other words, thanks to late binding, a client application does not need anymore to statically link with an interface it uses. When, in the simple COM server DLL, we include the simplecomserver_i.h interface declaration, we are in fact providing the compiler a static function vtable. This is not always good. Late binding allows to retrieve the position of an interface function by giving its name. In the long term, this provides software developers with a versatile binding system. This service is provided by IDispatch, a sort of pointer to the type-library.
But that's not enough, what about the parameters? Automation languages are supposed to be able to guess method params on-the-fly at design-time, or even only at run-time. At design time, the problem is solved easily. In fact, when you registered your COM server, you registered the type-library as well, thus any automation-enabled language can read it on your behalf, extract all objects, interfaces, methods, and params, and then expose it through intellisense (for instance). If you are using VB, you typically add the type-library with the Tools \ References menu. Then the object browser lists all the things mentioned. So we are able to call methods discovered on-the-fly at design-time, but what about run-time? At run-time, the automation engine needs to perform type binding, and that's what the other methods exposed by IDispatch are for. They provide entry points to the type-library and to an underlying API exposed by the operating system allows to extract all tiny details of your parameters: are they [in] ?, are they BSTR ?, ...
Although all of this sounds a bit scary, we are not going to embarrass ourselves with the details. In fact, most of the IDispatch implementation will be a default implementation already provided by one of the COM libraries. There we go:
So let's take back the .idl interface, and make the following changes on it:
The IDL interface should now look like this:
import "wtypes.idl"; [ uuid(6F818C55-E6AD-488b-9EB6-511C0CCC0612), version(1.0) ] library LibCOMServer { importlib("stdole32.tlb"); importlib("stdole.tlb"); [ uuid(7F24AABF-C822-4c18-9432-21433208F4DC), dual, oleautomation ] interface ICOMServer : IDispatch { [id(1)] HRESULT Name([out, retval] BSTR* objectname); } [ uuid(6AE24C34-1466-482e-9407-90B98798A712), helpstring("COMServer object") ] coclass CoCOMServer { [default] interface ICOMServer; } }
If you try to build the project now, you'll get errors since we don't provide implementation yet for IDispatch, although we derive from it. So let it be:
#pragma once // ICOMServer interface declaration /////////////////////// // // class CoCOMServer : public ICOMServer { // Construction public: CoCOMServer(); ~CoCOMServer(); // IUnknown implementation // virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv) ; virtual ULONG __stdcall AddRef() ; virtual ULONG __stdcall Release() ; //IDispatch implementation virtual HRESULT __stdcall GetTypeInfoCount(UINT* pctinfo); virtual HRESULT __stdcall GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo** pptinfo); virtual HRESULT __stdcall GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgdispid); virtual HRESULT __stdcall Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr); // ICOMServer implementation // virtual HRESULT __stdcall Name(/*out*/BSTR* objectname); private: HRESULT LoadTypeInfo(ITypeInfo ** pptinfo, const CLSID& libid, const CLSID& iid, LCID lcid); // Reference count long m_cRef ; LPTYPEINFO m_ptinfo; // pointer to type-library };
And now for the implementation. First of all let's load the type-library (we actually load the .tlb file):
// // Constructor // CoCOMServer::CoCOMServer() : m_cRef(1) { InterlockedIncrement(&g_cComponents) ; m_ptinfo = NULL; LoadTypeInfo(&m_ptinfo, LIBID_LibCOMServer, IID_ICOMServer, 0); } HRESULT CoCOMServer::LoadTypeInfo(ITypeInfo ** pptinfo, const CLSID &libid, const CLSID &iid, LCID lcid) { HRESULT hr; LPTYPELIB ptlib = NULL; LPTYPEINFO ptinfo = NULL; *pptinfo = NULL; // Load type library. hr = ::LoadRegTypeLib(libid, 1, 0, lcid, &ptlib); if (FAILED(hr)) return hr; // Get type information for interface of the object. hr = ptlib->GetTypeInfoOfGuid(iid, &ptinfo); if (FAILED(hr)) { ptlib->Release(); return hr; } ptlib->Release(); *pptinfo = ptinfo; return NOERROR; }
We also allow the outside to request the IDispatch interface as we now fully support it:
HRESULT __stdcall CoCOMServer::QueryInterface(const IID& iid, void** ppv) { if (iid == IID_IUnknown || iid == IID_ICOMServer || iid == IID_IDispatch) { *ppv = static_cast<ICOMServer*>(this) ; } else { *ppv = NULL ; return E_NOINTERFACE ; } reinterpret_cast<IUnknown*>(*ppv)->AddRef() ; return S_OK ; }
And we provide a default implementation for the IDispatch interface itself:
HRESULT __stdcall CoCOMServer::GetTypeInfoCount(UINT* pctinfo) { *pctinfo = 1; return S_OK; } HRESULT __stdcall CoCOMServer::GetTypeInfo (UINT itinfo, LCID lcid, ITypeInfo** pptinfo) { *pptinfo = NULL; if(itinfo != 0) return ResultFromScode(DISP_E_BADINDEX); m_ptinfo->AddRef(); // AddRef and return pointer to cached // typeinfo for this object. *pptinfo = m_ptinfo; return NOERROR; } HRESULT __stdcall CoCOMServer::GetIDsOfNames (REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgdispid) { return DispGetIDsOfNames(m_ptinfo, rgszNames, cNames, rgdispid); } HRESULT __stdcall CoCOMServer::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr) { return DispInvoke( this, m_ptinfo, dispidMember, wFlags, pdispparams, pvarResult, pexcepinfo, puArgErr); }
Build the project, and register the component.
We are done, again! This COM component supports automation languages, early binding and late binding.
Let's play now. Run MS Word, then go to the Visual Basic Editor, and copy/paste this code snippet:
Sub Macro1() Dim obj As ICOMServer Set obj = CreateObject("COMServer.object") Dim szname As String szname = obj.Name ' explicit Name([out,retval] BSTR*) method call MsgBox szname End Sub
Before you run it, don't forget to go to Tools \ References and add a reference to the automcomserver.tlb type-library.
The reason why we don't pass a string as input parameter, unlike what the .idl interface suggests, is that when a param is explicitly tagged [out,retval] it's actually a result value, hence the assignment to the szname variable.
For many reasons it's better to run a COM component behind a separate process. Process isolation for security and performance reasons are just to name a few. But that's where things start to get a bit trickier. Indeed, for the end user a .exe COM server will be used exactly the same way as if it was a .dll: CoCreateInstance, QueryInterface, method calls, Release. But the developers have to pay all the implementation details.
We are going to reuse our code, and add a message pump, and register the class object to another table known by the COM library, and used for processes only.
The resulting code is provided in the automexeserver.zip package.
Let's create a new project, Win32 application this time instead Win32 dynamic library and call it automexeserver. Make sure you get this in automexeserver.cpp:
// automexeserver.cpp : Defines the entry point for the application. // #include "stdafx.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. return 0; }
Now copy, rename, and add all these files to this project :
Of course, you need to make a few changes internally in the files so to reflect the new automexeserver name: you need to replace the #include statements that were referencing automcomserver headers, and you need to go to the Project Settings and change the MIDL options for automexeserver.idl: fill the "Output header filename" field with automexeserver_i.h.
As you have probably guessed by now, we don't need automcomserver.def anymore, which was used to declare the exported functions. In fact, a process does not need to export any function since the method call used will be LPC/RPC, not the simple in-process method call we've seen so far. No need to be frightened, we are not going to dive into the marshalling frenzy. So relax.
It's ok to build the project, but it won't work as expected yet.
First of all, let's add some muscles to the application entry-point. Here we are going to initialize ourselves against the internal table of COM processes, and then we are going through breakable message pump. automexeserver.cpp should reflect exactly this :
// automexeserver.cpp : Defines the entry point for the application. // #include "stdafx.h" #include <objbase.h> // #include "automexeserver_i.h" #include "automexeserverImpl.h" int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // register/unregister server on demand // char szUpperCommandLine[MAX_PATH]; // copy command line and work with it. strcpy (szUpperCommandLine, lpCmdLine); strupr (szUpperCommandLine); if (strstr (szUpperCommandLine, "UNREGSERVER")) { DllUnregisterServer(); return 0; } else if (strstr (szUpperCommandLine, "REGSERVER")) { DllRegisterServer(); return 0; } // initialize the COM library ::CoInitialize(NULL); // register ourself as a class object against the internal COM table // (this has nothing to do with the registry) DWORD nToken = CoEXEInitialize(); // -- the message poooommmp ---------------- // // (loop ends if WM_QUIT message is received) // MSG msg; while (GetMessage(&msg, 0, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } // unregister from the known table of class objects CoEXEUninitialize(nToken); // ::CoUninitialize(); return 0; }
A few remarks are required:
To finish the implementation, we provide to code the 4 mentioned functions in automexeserverImpl.cpp, namely DllRegisterServer(), DllUnregisterServer(), CoEXEInitialize() and CoEXEUninitialize():
CFactory gClassFactory; DWORD CoEXEInitialize() { DWORD nReturn; HRESULT hr=::CoRegisterClassObject(CLSID_CoCOMServer, &gClassFactory, CLSCTX_SERVER, REGCLS_MULTIPLEUSE, &nReturn); return nReturn; } void CoEXEUninitialize(DWORD nToken) { ::CoRevokeClassObject(nToken); } // // Server registration // STDAPI DllRegisterServer() { g_hModule = ::GetModuleHandle(NULL); HRESULT hr= RegisterServer(g_hModule, CLSID_CoCOMServer, g_szFriendlyName, g_szVerIndProgID, g_szProgID, LIBID_LibCOMServer) ; if (SUCCEEDED(hr)) { RegisterTypeLib( g_hModule, NULL); } return hr; } // // Server unregistration // STDAPI DllUnregisterServer() { g_hModule = ::GetModuleHandle(NULL); HRESULT hr= UnregisterServer(CLSID_CoCOMServer, g_szVerIndProgID, g_szProgID, LIBID_LibCOMServer) ; if (SUCCEEDED(hr)) { UnRegisterTypeLib( g_hModule, NULL); } return hr; }
Let us not forget that we need to kill ourselves when the client application tells us to. Let's update the CoCOMServer::Release() implementation:
ULONG __stdcall CoCOMServer::Release() { if (InterlockedDecrement(&m_cRef) == 0) { delete this ; ::PostMessage(NULL,WM_QUIT,0,0); return 0 ; } return m_cRef ; }
Now you can build this project. Don't forget the shell command line: automexeserver.exe /regserver before you use the COM server. You can test that one against the VB code snippet for instance (don't remember to reference the type-library, now it's automexeserver.tlb).
automexeserver.exe /regserver
If you want to test the component using a C/C++ client application, use the TestAutomexeserver.dsp project for instance (the only difference with TestSimplecomserver.dsp is the inclusion of the proper interface header files. Experience shows that if you include wrong files, then at run-time a GPF is almost guaranteed!).
And we are done, finally!! Was it that hard?
This article has provided you three real world code samples reflecting the 3 kind of code you need whenever you come nearby the COM frontier.
Hope you find them useful.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
General News Suggestion Question Bug Answer Joke Praise Rant Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


text:
I am horrified. I had no idea when I wrote my pair of posts about Wild Flag and tUnE-yArDs at SXSW last week that both bands (both!) had been prominently featured in NPR's coverage of the event. To make up for that oversaturation, here's a band that's received criminally little coverage but that were my favorite personal discovery of the week.
The Ugly Beats have been kicking around since 2003 and are hardly unknowns in their hometown of Austin, even playing at SXSW last year. That they never pinged my radar may be because they are on Get Hip, a label that I consistantly underestimate. Get Hip specializes in 1960s garage rock revivalists -- modern day bands that worship at the feet of the Seeds or the Troggs -- and how many of those bands do I need to hear, really? And yet, Get Hip manage to grab the pick of the litter so that, whenever I do bother to drop the laser to the silver, I'm always impressed.
Any, boy howdy did the Ugly Beats impress! Perhaps inspired by an introduction from Fleshtone Peter Zaremba, or just the friendly hometown crowd, they brought an energy to the Easy Tiger Patio stage that was addictive and infectious. Between that energy, great songs, a keyboardist with a killer smile (and great vintage dress) and a drummer that looked like he stepped off the set of Mad Men, I couldn't take my eyes or camera off them.


text:
What unalienable rights? God given unalienable rights would be "survival of the fittest free to starve to death, free to die of totally curable illness,Free to faith heal kids to death. No you are not.<quoted text>
Explain how socialism will work without removing unalienable rights. Youre only proving my point that you cant.
God drowned tens of thousands of babies baby puppies, baby kittens, and baby humans.
Founding father were slave owners that did not allow blacks to vote did not allow women to vote nor poor white men to vote.
Constitution of the United States has NO unalienable rights while the Declaration of Independence is NOT a legal document.


text:
ICD-10 Diagnosis Code S37.522D
Contusion of fallopian tube, bilateral, subsequent encounter
Diagnosis Code S37.522D
Short Description: Contusion of fallopian tube, bilateral, subsequent encounter
Long Description: Contusion of fallopian tube, bilateral, subsequent encounter
This is the 2017 version of the ICD-10-CM diagnosis code S37.522D
Valid for Submission
The code S37.522D is valid for submission for HIPAA-covered transactions.
Code Classification
Injury, poisoning and certain other consequences of external causes (S00–T98)
Injuries to the abdomen, lower back, lumbar spine, pelvis and external genitals (S30-S39)
- Injury of urinary and pelvic organs (S37)
Injuries to the abdomen, lower back, lumbar spine, pelvis and external genitals (S30-S39)
Information for Medical Professionals
Code Edits
The following edits are applicable to this code:
Diagnoses for females only Diagnoses for females only
Diagnoses for females only.
Diagnostic Related Groups
The diagnosis code S37.522D is grouped in the following Diagnostic Related Group(s) (MS-DRG V34.0)
Present on Admission (POA) Present on Admission
The Present on Admission (POA) indicator is used for diagnosis codes included in claims involving inpatient admissions to general acute care hospitals. POA indicators must be reported to CMS on each claim to facilitate the grouping of diagnoses codes into the proper Diagnostic Related Groups (DRG). CMS publishes a listing of specific diagnosis codes that are exempt from the POA reporting requirement.
The code S37.522D is exempt from POA reporting.
Information for Patients
Uterine Diseases
The uterus, or womb, is the place where a baby grows when a woman is pregnant. The first sign of a problem with the uterus may be bleeding between periods or after sex. Causes can include hormones, thyroid problems, fibroids, polyps, cancer, infection, or pregnancy.
Treatment depends on the cause. Sometimes birth control pills treat hormonal imbalances. If a thyroid problem is the cause, treating it may also stop the bleeding. If you have cancer or hyperplasia, an overgrowth of normal cells in the uterus, you may need surgery.
With two other uterine problems, tissue that normally lines the uterus grows where it is not supposed to. In endometriosis, it grows outside the uterus. In adenomyosis, it grows in the uterus's outside walls. Pain medicine may help. Other treatments include hormones and surgery.
- Adenomyosis
- Asherman syndrome
- D and C
- Endometrial ablation
- Endometrial polyps
- Endometritis
- Hysteroscopy
- Retroversion of the uterus
[Read More]
Wounds and Injuries
Also called: Traumatic injuries
An injury is damage to your body. It is a general term that refers to harm caused by accidents, falls, hits, weapons, and more. In the U.S., millions of people injure themselves every year. These injuries range from minor to life-threatening. Injuries can happen at work or play, indoors or outdoors, driving a car, or walking across the street.
Wounds are injuries that break the skin or other body tissues. They include cuts, scrapes, scratches, and punctured skin. They often happen because of an accident, but surgery, sutures, and stitches also cause wounds. Minor wounds usually aren't serious, but it is important to clean them. Serious and infected wounds may require first aid followed by a visit to your doctor. You should also seek attention if the wound is deep, you cannot close it yourself, you cannot stop the bleeding or get the dirt out, or it does not heal.
Other common types of injuries include
- Animal bites
- Bruises
- Burns
- Dislocations
- Electrical injuries
- Fractures
- Sprains and strains
- Bleeding
- Crush injury
- Cuts and puncture wounds
- Electrical injury
- Gunshot wounds -- aftercare
- How wounds heal
- Human bites -- self-care
- Laceration - sutures or staples - at home
- Lacerations - liquid bandage
- Surgical wound care
- Surgical wound infection - treatment
- Wet to dry dressing changes
- Wound care centers
[Read More]


text:
Fish & Wildlife - Region 2
Mon Oct 22 16:39:00 MDT 2012
Changing wildlife movement patterns, combined with less daylight during popular commute times, increases the risk of wildlife collisions during the fall season, and Montana Fish, Wildlife & Parks is reminding motorists to exercise extra caution.
"We have more animals moving around and decreased visibility during key drive times, so right now is the time to be extra alert for wildlife on our roads," says Mike Thompson, FWP Region 2 Wildlife Manager.
Thompson says that it is a combination of cooler weather, mating season and hunting pressure in the fall that alters wildlife movement and prompts more activity in the valleys near roadways.
FWP points to four examples of spots where vehicle and wildlife movements have intersected recently. These include elk and deer crossing Highway 93 between Lolo and Florence, elk crossing I-90 in the Jens area east of Drummond, and bighorn sheep on the shoulders of Highway 200 between Plains and Thompson Falls and just outside of Bonner.
Twelve elk have been hit by vehicles on the stretch of road south of Lolo since December of last year. Thompson says this spot is particularly attractive to animals looking for a passageway between timbered mountainous areas and fields west of Highway 93 and the water and vegetation along the river, east of the highway.
"Traffic is heavy with commuters on this stretch of roadway at dawn and dusk when animals are moving between bedding sites and feeding areas," Thompson says. "Even if the lighted roadside warning signs go away, this is an area where motorists should use extra caution."
Wildlife collisions can happen anywhere, so the ability to detect wildlife when you are behind the wheel is an essential skill for driving on any Montana roadway, particularly during October and November.
What can a driver do to be safe and spare wildlife?
FWP emphasizes making a conscious effort to scan for wildlife on the road, in the ditch, and on the shoulders of the road continuously. If you see an animal, slow down and prepare for it to dart in front of you. Use your brakes and not your steering wheel.
Here are some other wildlife-oriented driving tips:
• Be especially watchful from dusk to dawn when animals are most active. Avoid driving on cruise control during these hours and lower your speed.
• Use extra caution near posted wildlife crossings. These areas are traditional places that wildlife may cross roads to reach food, water and shelter. Be alert and slow your speed for the next couple of miles.
• Be aware that deer and elk rarely travel alone. When one crosses the road, prepare to avoid others that may follow.
• Watch for wildlife at night as well as dawn and dusk as you travel along all roadways, particularly along rural roads.
If you do hit a deer, elk or other big game animal, remember that it is against the law to possess or transport the animal, or any portion of it, including the antlers.
For help, and to report the collision, call the city police, county sheriff, or the Montana Highway Patrol, depending on where the accident occurs.


text:
The IRS has proposed a new rule that would prohibit Campaign for Liberty from sharing information regarding how your elected officials stand on issues such as Audit the Fed, NSA spying, and replacing ObamaCare 60 before a general election and 30 days before a primary — the very time most people are interested in learning about their elected officials' positions. This rule would even prohibit state C4L activists from hosting non-partisan candidate forums where people could directly question their candidates! C4L members and other liberty-minded Americans have won a great victory by passing H.R. 3865, the Stop Targeting of Political Beliefs by the IRS Act, in the U.S. House, and now we must turn up the heat on the Senate to follow suit. Help us fight back by signing your "Stop the IRS Gag Rule" Fax Petition to your senators today! And after you sign your Fax Petition, please pitch in to our efforts to keep our momentum going against this rule with a generous contribution of $50, $40, $30, or $20!
Stop the IRS' Gag Rule Fax Petition to:
My U.S. Senators


text:
Food For Thought 3.12.09
"The good news for the restaurant industry is that consumers typically get hungry about every four to five hours, generally three times a day, seven days a week, 365 days a year." (Bob Derrington, securities analyst with Morgan Keegan & Co., on the ability of restaurants to weather nasty little recessions. According to some industry data, the food service sector continues to show life. Instead of the 20-plus percent sales declines experienced by retail--and worse in the auto industry--McDonald's experienced a 2.8 percent increase in U.S. based sales in February alone. Of course, only three of 36 casual dining chains saw gains. Still, as retail sales slumped 10.8 over the three months ending in January, the restaurant industry chugged along at a 2 percent growth rate--at least according to Nation's Restaurant News.)
In Case You Missed It
Popular Stories
Sponsor Content


text:
Recipes using vegetable oil
Olive Garden Salad
100th Anniversary Cookbook Who: Iroquois Memorial Hospital Auxiliary Cost: $12 includes shipping Details: Soft-backed, spiral bound Pages of recipes: 92 Send checks to: Iroquois Memorial Hospital Auxiliary, c/o Donna Suver, 1353 N 1450 East Road, Onarga, IL 60955
Curried Floret Salad
Calling all cookbooks! Is your church or community organization selling its own unique cookbook filled with favorite recipes of cooks in your area? If so, send your cookbook to Valerie Cheatham, Illinois Country Living, P.O. Box 3787, Springfield, IL 62708. Please include the price of your cookbook plus postage costs and the name, address and […]
Chinese Beef and Pea Pods
Feeding the Flock Who: Zion Lutheran Church Cost: $17 includes shipping Details: Hard-backed, comb bound Pages of recipes: 214 Send checks to: Barbara Bretz, 10633 State Route 161, Mascoutah, IL 62258 or call 618-566-8239.
Pasta Salad
135th Anniversary Edition Cookbook Who: Evangelical Covenant Church Cost: $15 includes shipping Details: Hard-backed, ring bound Pages of recipes: 294 Send checks to: Merrily Griffin, 405 E. Franklin St., Paxton, IL 60957 or call 217-379-3565 or 217-898-2546
Holy Guacamole Burger
Family & Friends Cook Who: The Workshop, serving individuals with disabilities Cost: $20 includes shipping Details: soft-backed, spiral bound Pages of recipes: 380 Send checks to: The Workshop, 706 S. West St., Galena, IL 61036 or call 815-777-2211
Neapolitan Cupcakes
Country Goodness Who: Maeystown Clovers 4-H Club Cost: $13.50 includes shipping Details: soft-backed, spiral bound Pages of recipes: 121 Send checks to: Maeystown Clovers, c/o Lisa Schwarze, 3010 Long Lake Rd., Valmeyer, IL 62295 or call 618-830-5019.
Macaroni and Cheese
Cooking with the Scotties Who: Waverly Elementary School Cost: $15 includes shipping Details: Soft-backed, spiral bound Pages of recipes: 167 Send checks to: Waverly Elementary School, Attn: Karen Bennett, 499 W. Elm, Waverly, IL 62692 or call 217-435-2331.
Turkey Cilantro Bites
From Our Community to Your Table Who: Carl Sandburg College Community Garden Cost: $15 Details: hard-backed, ring bound Pages of recipes: 205 To purchase: Call 309-341-5328 or email firstname.lastname@example.com, for more info contact Mary Robson at email@example.com.
Sliced Tomato Salad
Congerville School Centennial Cookbook Who: Congerville School PTOCost: $20 includes shippingDetails: soft-backed, spiral boundPages of recipes: 305Send checks to: Congerville PTO, c/o Jill Gudeman, 310 E. Kauffman St., Congerville, IL 61729 or call 309-831-6001.
Blueberry Zucchini Bread
Heavenly Delights Who: South Fork United Methodist ChurchCost: $20 includes shippingDetails: Hard-backed, ring bound, includes recipe CDPages of recipes: 276Send checks to: South Fork U.M.W., c/o Barb Stolte, 1403 E. 200 North Road, Nokomis, IL 62075 or 217-820-1757 or email firstname.lastname@example.com.


text:
A postgame interview with Kuroda
A postgame interview with Kuroda
How do you feel now after a big victory?
HIROKI KURODA: After losing two in a row, I wanted to change the momentum, so I feel good that we had a big victory.
The pitch that went over Shane Victorino's head, what did you intend to do with that pitch?
HIROKI KURODA: I tried to pitch inside and it just slipped out of my hand.
What was said between you and Shane Victorino and who said it first?
HIROKI KURODA: Well, since my language skills, it's kind of limited, so I didn't know anything he was saying and I forgot what I said.
So it was the passion of the game and everyone was really excited.
Even given the language barrier, were you able to pick up the gist of what was going on? Obviously it appeared to be a tense situation there?
HIROKI KURODA: I felt the tension, but, like I said, I don't really understand English so I don't know what was being said. But when I go on the mound I'm a different person. I become passionate about the game. So that's pretty normal what goes on out there.
Before the game, you mentioned that you have -- before the game you mentioned that you have to pitch really well early in the game, and you seemed to struggle a little bit early in the game, but later on you seemed to get rhythm going. And what did you have to adjust, if anything, and what did you have to do to get in the rhythm?
HIROKI KURODA: I didn't think I pitched that bad early in the game, but the big support was our offense. I had a big run support early in the game, so that helped me to get into my rhythm.
Before the game [Joe] Torre said that the pitcher has to pitch both sides of the plate. And what did you think about your pitching tonight?
HIROKI KURODA: Not just this game, but I usually use both sides of the plate in order to have an effective outing.
And after the third inning, after what happened, it was really hard to pitch inside, but after everything calmed down I was able to again use both sides of the plate.
Courtesy of FastScripts by ASAP Sports.


text:
Ruby back with Sharif Sabri
Egyptian singer/actress Ruby has recorded six out of twelve songs for her upcoming album, which she plans to release this summer season. Ruby will produce the album herself.
According to the London based Elaph, sources close to the singer revealed there is a strong possibility that Ruby will again work with Sharif Sabri, after the two split. Ruby is considering that Sharif direct her upcoming music videos.
It is said that Ruby and Sharif, despite their separation, are always in contact and that Ruby considers Sharif to be a very talented director.
Sharif discovered Ruby and presented her to the music world in 2002. At first she was considered a seductive singer by critics that accused her of wearing skimpy outfits to attract viewers. Sharif and Ruby worked together for four years. Details of their breakup were never made public.


text:
SINK or SWIM Video – The Showdown – The Man Named Hell
The Showdown have released a new CD, Blood in the Gears, on August 24th! Check out their new video clip, "The Man Named Hell" below.
Should The Showdown's "The Man Named Hell" Video SINK or SWIM? Decide with your vote below!
Leave A Comment ↓


text:
Subject: | Re: Possible Fantasy/Adventure Story |
Author: | Billina (Authenticated as Billina) |
Date: | May 28, 2012 at 1:29:13 PM |
Reply to: | Possible Fantasy/Adventure Story by Kinola |
Well, I think the story could be interesting with a little polishing, BUT- I have to be honest, the characters come across as stock to me. We have the well-intentioned heroine who is in the midst of discovering herself, we have the eternal optimist who grates, and we have the tomboy...the triplets sound like stereotypes that have popped up here on the board, time and time again. When you write the story, just make sure the characters have depth to them, and don't rely on things happening to them in order to shape their identities. That is my advice.As for the names...I have to agree with Amphelise in that the flower theme is a little tacky. I would go with their middle names; I think they are more "grounded", and that they sound better, but that's just me.
"An intellectual says a simple thing in a hard way. An artist says a hard thing in a simple way."
-Charles Bukowski"And by the way, dearie, your punctuation sucks canal water!"
-The ghost of Vivian Vance
Because this message is archived you cannot respond to it. |
Messages in this thread: |


text:
Comment Lending library (Score 1) 276
The only reason I considered prime was for the lending library which is advertised as having 500k books to borrow. Turns out you have buy a Kindle device to use the library. You cannot use the Kindle app on your phone or non-Amazon tablet for it. So, I bought a Kindle and then realized they only let you borrow one book a month. So, the whole 500k books to borrow ad is a little misleading. Cancelled my trial of Prime and returned the Kindle. Netflix has better content for online videos and we don't need the free 2-day shipping enough to justify even $79 per year.


text:
32 Awesome Apple Breakfasts
- 4 large baking potatoes
- 1 beef top sirloin steak (1 pound)
- 1 teaspoon coarsely ground pepper
- 2 cups cherry tomatoes
- 2 jars (7-1/2 ounces each) marinated quartered artichoke hearts, drained
- 2 garlic cloves, minced
- 1 cup reduced-fat mayonnaise
- 3/4 cup shredded Asiago cheese, divided
- 3 cups fresh baby spinach, coarsely chopped
- Scrub and pierce potatoes; place on a microwave-safe plate. Microwave, uncovered, on high for 15 minutes or until tender, turning once.
- Sprinkle steak with pepper. Grill, covered, over medium heat or broil 4 in. from the heat for 7-10 minutes on each side or until meat reaches desired doneness (for medium-rare, a thermometer should read 145°; medium, 160°; well-done, 170°). Let stand for 5 minutes.
- Place tomatoes in a grill wok or basket. Grill, uncovered, over medium heat for 2-4 minutes or until tomatoes begin to soften. Keep warm.
- In a large saucepan, heat artichokes and garlic over medium heat for 2 minutes. Add mayonnaise and 1/2 cup cheese; stir until cheese is melted. Stir in spinach and heat through.
- With a sharp knife, cut an "X" in each potato; fluff pulp with a fork. Slice steak into thin strips. Top potatoes with steak, artichoke sauce and tomatoes. Sprinkle with remaining cheese. Yield: 4 servings.
Editor's Note: If you do not have a grill wok or basket, use a disposable foil pan. Poke holes in the bottom of the pan with a meat fork to allow liquid to drain.
Originally published as The Bistro Baked Potato in Simple & Delicious
August/September 2012, p9
Full-Bodied Red Wine
Enjoy this recipe with a full-bodied red wine such as Cabernet Sauvignon, Merlot or Syrah.
Reviews for The Bistro Baked Potato
Please Log In or Join to add a rating and review.
Click stars to rate
Any changes to your rating or review will appear where you originally posted your review


text:
'Mad Men's' Glatter takes top TV prize
Adding another wrinkle to awards season, Kathryn Bigelow has won the Directors Guild of America trophy for helming the gritty drama, "The Hurt Locker" — the first woman to take the DGA kudo in the 62 years of the awards.
Bigelow said she was "stunned, honored and proud" in her acceptance speech at the end of the awards show on Saturday night at the Century Plaza. "We all felt a really deep responsibility to tell this story with as much honesty as possible, given the courage of the men and women in the field," she added. "This is the most incredible moment of my life." Danny Boyle, who won last year for "Slumdog Millionaire," announced Bigelow's victory, provoking yells of delight from the crowd. She defeated James Cameron for "Avatar," Lee Daniels for "Precious," Jason Reitman for "Up in the Air" and Quentin Tarantino for "Inglourious Basterds." Other key DGA trophies went to Jason Winer for comedy series for the pilot of ABC newcomer "Modern Family"; Lesli Linka Glatter for drama for the "Guy Walks Into an Advertising Agency" episode of AMC's "Mad Men"; Ross Katz for TV-miniseries for HBO's Iraq war drama "Taking Chance"; and Louis Psihoyos for documentaries for "The Cove." Bigelow, who shot "Locker" in Jordan, was only the seventh female to be nominated for the DGA trophy. She won the Producers Guild of America trophy last weekend, following kudos from the New York Film Critics Circle, Los Angeles Film Critics Assn. and the National Society of Film Critics. Jeremy Renner, in presenting Bigelow with a DGA nomination medallion earlier in the evening, heralded her as "a warrior" who maintained her enthusiasm amid 125-degree heat during the shoot. The DGA award is viewed as a reliable predictor of the Academy Award for best director since the same director has won both in all but six years since 1948, including last year, when Boyle won both trophies for "Slumdog Millionaire." The directors branch of the Academy of Motion Picture Arts & Sciences has 366 voting members, or about 6% of the total membership of 5,777. Oscar noms will be announced Tuesday. During a DGA panel discussion Saturday, Bigelow stressed the importance of achieving a realistic portrayal of a U.S. military squad defusing bombs in Iraq. "Authenticity is a moral imperative," she declared. Carl Reiner, who was felled by food poisoning last year and replaced by Jon Cryer, emceed the show for the 22nd time with his usual lighthearted style. He opened by presenting DGA president Taylor Hackford with what he called the first Helen Mirren award, consisting of a magazine article about Hackford's spouse. Cameron, who received his nomination medallion from "Avatar" stars Zoe Saldana and Sam Worthington, was effusive in thanking the cast — saying they were "friends for life" — and Fox toppers Jim Gianopulos and Tom Rothman for "the very big check they wrote." Reitman dedicated his medallion to his father Ivan Reitman, who's also a producer on "Up in the Air," and Brad Pitt received major laughs when he launched his presentation of Tarantino's medallion by saying he would do so "in five non-linear chapters." Previously announced awards included Norman Jewison's lifetime achievement award with Cher presenting and apologizing for failing to thank the director when she won the Oscar for "Moonstruck." "I was so nervous that I forgot to thank him," she said. "I love him so much." Disney topper Robert Iger and Warner Bros. chief Barry Meyer received DGA lifetime membership awards with secretary-treasurer Gil Cates commending both for leading in "finding solutions" at the negotiating table. Among other awards, Don Mischer copped the musical-variety honor for HBO's "We Are One: The Obama Inaugural Celebration at the Lincoln Memorial"; Craig Borders won the reality TV award for Discovery Science's "Build It Bigger Season 3: Hong Kong Bridge"; Allison Liddi-Brown took the children's program trophy for Disney Channel's "Princess Protection Program"; Christopher Goutman won the daytime serial award for CBS's "As the World Turns," which the net has canceled; and Tom Kuntz of MJZ UK took the commercials trophy. Winners list: OUTSTANDING DIRECTORIAL ACHIEVEMENT IN FEATURE FILM Kathryn BigelowThe Hurt Locker
(Summit Entertainment) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN MOVIES FOR TELEVISION/MINISERIES Ross Katz
Taking Chance
(HBO) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN DOCUMENTARY Louie Psihoyos
The Cove
(Oceanic Preservation Society and Roadside Attractions) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN DRAMATIC SERIES NIGHT Lesli Linka Glatter
Mad Men – "Guy Walks Into an Advertising Agency"
(AMC) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN COMEDY SERIES Jason Winer
Modern Family – "Pilot"
(ABC) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN MUSICAL VARIETY Don Mischer
We Are One: The Obama Inaugural Celebration at the Lincoln Memorial
(HBO) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN REALITY PROGRAMS Craig Borders
Build It Bigger Season 3 – "Hong Kong Bridge"
(Discovery Science) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN DAYTIME SERIALS Christopher Goutman
As The World Turns – "Once Upon A Time"
(CBS) OUTSTANDING DIRECTORIAL ACHIEVEMENT IN COMMERCIALS Tom Kuntz
UK OUTSTANDING DIRECTORIAL ACHIEVEMENT IN CHILDREN'S PROGRAMS Allison Liddi-Brown
Princess Protection Program
(Disney Channel) 2009 DGA SERVICE AND CAREER ACHIEVEMENT AWARD RECIPIENTS Director Norman Jewison – DGA Lifetime Achievement Award for distinguished achievement in Motion Picture Direction. Robert A. Iger, President and CEO of The Walt Disney Company – DGA Honorary Life Member Award, given in recognition of outstanding creative achievement, leadership in the industry, contribution to the DGA or to the profession of directing. Barry M. Meyer, Chairman and CEO of Warner Bros. Entertainment, Inc. – DGA Honorary Life Member Award, given in recognition of outstanding creative achievement, leadership in the industry, contribution to the DGA or to the profession of directing. Roger Goodman received the DGA's 2010 Lifetime Achievement Award in News Direction for distinguished achievement. Cleve Landsberg received the 2010 Frank Capra Achievement Award, which is given to an Assistant Director or Unit Production Manager in recognition of career achievement in the industry and service to the Directors Guild of America. Maria Jimenez Henley received the 2010 Franklin J. Schaffner Achievement Award, which is given to an Associate Director or Stage Manager in recognition of career achievement in the industry and service to the Directors Guild of America.


text:
Architect approved for City Hall renovation
COSTA MESA City officials are working with architects to define the cost and scope of potential renovations at City Hall and the Police Department.
Calling the lobbies of the buildings unwelcoming, the City Council Tuesday approved an $85,000 contract with a local architect to design more "friendly" entrances to the buildings and other renovations to City Hall.
Officials did not set a budget for the overall project, despite warnings of the potential for excessive spending from some members of the public and some City Council members. The contract passed 3-2, with Councilwomen Wendy Leece and Sandy Genis voting no.
Costa Mesa based Dougherty+Dougherty Architects will work to make the lobbies more inviting, accessible for disabled people, and to tighten security.
"This is one of those customer service issues that, at some point, had to be addressed," city CEO Tom Hatch said.
The architects also plan to assess three other parts of City Hall: the recently vacated print shop; the council chambers; and the City Clerk's office, which is adjacent to the lobby.
For the former print shop, they will consider remaking the space into a community room or even a coffee shop. In the chambers, they could reconfigure the staff area for "better interaction with the public," a staff report says, and in the clerk's office, they could make it more disabled accessible.
"I understand the (Americans with Disabilities Act)," Councilwoman Wendy Leece said, "but not the more fancy things."
Mayor Jim Righeimer said he was concerned that the cost could creep up like Newport Beach's Civic Center project, but he still voted for the contract. In Newport, officials approved an architect's contract without a set budget for the overall project, which more than doubled from its early cost estimates.
"Can you at least give us a magnitude of what kind of money we're talking about?" Righeimer asked firm partner Betsey Dougherty.
Dougherty said her firm will provide some cost alternatives and will hold public workshops to determine the best use of the space.
"The return on investment has to come back to the community," she said.
Some residents said they would rather spend the money on things like public safety, storage lockers for homeless people or a building for the American Legion and other veterans groups.
"We have so many other screaming priorities," resident James Bridges said. "This is fluff."
Most Popular
- How to solve Disneyland's stroller problem
- Police: Pair arrested after ditching stolen car in Orange
- Amber Alert issued for 2 toddlers abducted in Cathedral City
- Pro-Trump march in Huntington Beach expected to draw thousands, including protesters
- Psychic cops? O.C. Sheriff's Department predicts burglary in advance, catches suspects in
User Agreement
Comments are encouraged, but you must follow our Privacy Policy Policy & Terms of Use
Keep it civil and stay on topic. No profanity, vulgarity, racial slurs or personal attacks. People who harass others or joke about tragedies will be blocked. By posting your comment, you agree to allow Orange County Register Communications, Inc. the right to republish your name and comment in additional Register publications without any notification or payment.


text:
The trial in the December 16 gang rape case resumed in a Delhi court on Monday after the summer vacation with the investigating officer (IO) rejecting allegations that she had fabricated evidence.
"It is wrong to suggest that all the accused persons were falsely implicated in the case," the IO, who had initially probed the case, told additional sessions judge Yogesh Khanna.
She refuted the allegation that accused Vinay Sharma was a juvenile at the time of the incident or that he had shown her clippings of a function which he attended on December 16, 2012 night, when the gang rape took place.
The officer also denied the allegation that accused Akshay Singh was falsely implicated in the case as he was not present when the crime took place.


text:
28-Aug-2017 - 01-Sep-2017
41st session of the Committee
02-Jul-2017 - 12-Jul-2017
World Heritage Young Professionals Forum 2017
25-Jun-2017 - 04-Jul-2017
International Workshop "World Heritage Potential of Testimonies to Aviation and Aerospace"
06-Apr-2017 - 08-Apr-2017
Call For Applications
International Training Course on Disaster Risk Management of Cultural Heritage 201728 August to 16 September 2017, Japan
© copyright / author / description
The deadline for submitting applications is Wednesday, 5 April 2017.
The Institute of Disaster Mitigation for Urban Cultural Heritage, Ritsumeikan University Kyoto, Japan, is organizing ...
Launch of report "Natural Marine World Heritage in the Arctic Ocean"
Tuesday, 4 April 2017
UNESCO at the world's largest tourism fair - ITB Berlin 2017
08-Mar-2017 - 12-Mar-2017
Call for applications: World Heritage Young Professionals Forum 2017
01-Mar-2017 - 03-Apr-2017
Regional conference on "Cultural heritage and identity: an Arab youth perspective"
01-Mar-2017 - 03-Mar-2017
2017 Lumbini International Steering Committee Meeting
17-Feb-2017 - 19-Feb-2017
The first Francophone African World Heritage Youth Forum will take place from 26 April to 5 May 2017 in Burkina Faso at the Ruins of Loropéni World Heritage site. The principal objectives are to increase awareness among French-speaking African youth on issues related to the protection and preservation of World Heritage and to create a sustainable platform that will enhance the participation ...
5th Transboundary Platform Meeting for the safeguarding of the Lake Ohrid region
09-Feb-2017 - 10-Feb-2017
This course on Linking Nature and Culture in World Heritage Site Management, to be held at Røros, is the first major activity of the World Heritage Leadership Programme, and the start of a process to set a new standard to link nature and culture practice in World Heritage Sites. The course curriculum has been developed through a series of activities. Among them was the curriculum developed ...
Walled Cities, open Societies: Managing Historic Walls in urban World Heritage properties
26-Jan-2017 - 27-Jan-2017
Lessons from Gorkha earthquake and issues and challenges of reconstruction: cultural heritage
Thursday, 26 January 2017
CIPA is the Scientific Committee on Heritage Documentation for the International Committee on Monuments and Sites (ICOMOS). CIPA2017, the 26th biennial symposium, will be held from August 28 to September 1, 2017, in Ottawa, Canada. CIPA2017 will focus on Digital Workflows for Conservation.The rapid rise in new digital technologies has revolutionized the practice of recording heritage places. ...


text:
Goldstar Member's Event Journal
Tuesday February 17, 2009 / 8:00pm (W. Kamau Bell, Carla Clayy)
Punch Line Comedy Club Presents Comedy Allstars
2 tickets
General Admittance Special (Limit 2)
How was your experience?
I arrived late because of the rain, and the staff at the door was very courteous and worked hard to get us quietly seated. The 4 comedians W. Kamau Bell, Carla Clayy, Ali Wong and Kevin Camia all seemed to genuinely like each other. The material ranged from Obama to private parts, and although a couple of the jokes need some work, the performers self-deprecating humor about it made you laugh anyway. Great venue, nice staff, and never a disappointment.


text:
Official Anime Thread
View Single Post
Join Date: Jun 2005
Location: in your Head
Posts: 8,586
Rep Power:
Originally Posted by
ive seen alotta anime... but the best is easily ONE PIECE!!!
i watched all 512 episodes that are out and it pisses me off that i have to wait for 1 week now for 1 episode to drop....
DONQUIXOTE DOFLAMINGO rules!!!lol
your kidding right??? One piece, that your best,... seriously, you pick a shounen as the best, dude i can write a shounen, but still out of all the shounen's you can pick from you choice easily the worst one. ok noted i haven't seen passed the 12 episode but being a shounen you dont have to know the story, once you have the premise you pretty much no how its going to play out. but never mind that the vary idea of you picking One peace as your Favorite says your inexperienced
in that case let me help you, this is the first anime i have ever watched it got me addicted so can it you
mow as for my choice of the best there is fare to many for me to chose from, so i would have to go by genera, since you brought up shounens this is the best shounen to date, it beat Gurren lagann for first and i'm loving the manga
unlike OP it has a deeper meaning growing up as a teenager raising a baby. there is no reason for one peace it only meant to entertain. there not talking about things like the social impact of war on our youths (Naruto) or the verry reason for the existence of our universe and are place with in it (Gurren lagann) there not saying anything with one piece only stretchy guy beats bad guy
View Public Profile
Find More Posts by Dokuro


text:
Invaluable cannot guarantee the accuracy of translations through Google Translate and disclaims any responsibility for inaccurate translations.
Show translation options
Lot 4: Bo Jackson Signed Auburn & Royals Jerseys
Sports Memorabilia-Rare, Signed & Fine Antique Furniture
by Atlanta Auction Company
November 3, 2012
Lawrenceville, GA, USA
Live AuctionSold
Looking for the realized and estimated price?
Description: Royals Jersey Signed by Bo Jackson. Signed #34 - (his Auburn Football number) and Signed #16 - (his Baseball number). Jersey, Signed, In Case. With Certificate of Authenticity
Browse more items


text:
Oh, all I have to say his whew! That was pretty awesome. Two major financial events, a week of panels and parties, and amazing content -- all centered around New York's growing digital ecosystem. Next week? I don't know about you, but I'm in good practice so I'm just going to keep it up.
Read Whole Story
A few months after the Sept. 11 attacks, when crippled phone networks thwarted communications across New York City, Congress called for the creation o...
A distinguished panel of experts gathered Saturday at the Philoctetes Center for the Multidisciplinary Study of Imagination for a standing room-only r...
Scott Heiferman proposed, "Use the Internet to get off the Internet!" His suggestion was applauded, despite the furious Blackberry scrolling in the midst of the proceedings.
Michah Sifry opened with a live video of oil gushing into the Gulf. The freedom to see the disaster didn't change the fact that we weren't doing anything. Remote engagement only takes you so far.
Forget CPAC. Never mind the DLC. Personal Democracy Forum (PdF) serves as the quintessential hub of examining where politics is headed in our tech-centric, increasingly mobile, socially connected 21st century.
Two years ago, I had a personal epiphany at the Personal Democracy Forum: New media could change everything... From communications to politics to culture. At PDF '09: more revelations.
The deal is that any info that the government publishes should be online. Not okay to print and bury someplace where it's hard to find.
Over 1,000 people descended upon the annual Personal Democracy Forum earlier this week. Here are some of my notes -- taken on Twitter, of course -- from the two day conference.
My focus at "Rebooting the System" was to learn how technology was impacting women's issues, the dissemination of information, and the role that women were playing in this arena.
Get top stories and blog posts emailed to me each day. Newsletters may offer personalized content or advertisements. Learn more.


text:
Back in February, in my post, "How does Google intend to compete with Microsoft in the cloud?", I wrote about how Google aimed to position its Chromebook and Chrome operating system as an alternative means to connect to Google Apps, as well as other on-demand Google services. Although Chromebook would have to come a long way in terms of hardware, Google's enterprise cloud strategy was clear — provide users with a low-cost, stripped down and easy to support device whose sole purpose is to connect to the Internet. This would set the stage for unmodified use of Google's SaaS applications that could be exploited in place of any client-server type software traditionally noticed on a stateless operating system like Microsoft Windows.
As straight-forward as the above sounds, there was a major shortcoming to employing widespread use of Chromebooks across organizations seeking to fully immerse themselves into Google's cloud without having to use third-party hardware to some extent — that being the idea that Chromebooks are these small, netbook-type machines that boast a Wi-Fi-only portability. They weren't intended for those locked down office workers who just need to be able to have their phone receiver in one hand, and pound away at large keyboard with the other, all while being suitably connected to Internet the old-fashioned way, through an Ethernet cable. Could you imagine a call center full with customer service representatives typing away, one pointer finger at a time, on a Chromebook placed on a sea of desk?
With the recent release of the Samsung Series 5 550 laptop and compact Chromebox desktop device (similar in style and capacity to Apple's Mac Mini), Google now knocks at the door of any enterprise intending to run their business in Google's cloud, most likely in a hope to shift IT resources to SaaS-based application development, with as minimal hardware support as possible. The two, dare I say - computers — possess a lot of the same features one might find on your traditional PC: Intel Core processor, 4 GB of RAM, multiple USB ports, a HDMI, DVI and VGA compatible display port, DVI output, discretionary built-in Wi-Fi 802.11 a/b/g/n or Ethernet port, Bluetooth 3.0 compatibility, and the all-important grownup-size keyboard. Additionally, one can now also purchase a Chrome keyboard and mouse for enhanced browsing/navigation (given my experience with Samsung Series 5 Chromebook, this is well worth the money spent as Chrome hosts a series of functions that aren't easily attainable on a customary keyboard and mouse).
Both devices' prices are a bit steep at the moment, with the Chromebox priced at $329, and the Samsung Series 5 550 at slightly more staggering $449. However, one must consider the idea that this price comes instantly loaded with low-cost software like Google Apps for Business, which now includes Google Drive, as well as a number of online community support resources, like the Chrome OS Help Center, Chromebook Central (forum), as well as the Chrome OS Wiki for developers. Also, if one considers the cost of installing Microsoft Office or subscribing to Office 365, across an enterprise of hundreds or thousands of workers, this price might not exactly seem like Google is giving the devices away, but it is certainly remaining competitive. Moreover, when you consider the fact that the only real software that needs to be supported is an unfussy Chrome OS that was built under the austerity of simply connecting to the Internet, one can realize that there isn't much to be supported in the first place.
It's clear that Google doesn't want to give enterprises any defense as to why not to use its on-demand services. The newfangled releases of versatile laptop and desktop devices that don't do much to stray from Google's model of providing a virtually hardware-less cloud will garner much attention from both hard-nosed Google Apps users and those still evaluating opportunities in consolidating their data center. Now, for Google, it's just a matter of quality control, sustaining the usability of both the Chrome OS laptop and desktop devices. The only waypoint that remains to completely round out Google's cloud infrastructure is the Internet itself, which Google just so happens to be working on as we speak.
Full Bio
Ian is a manager of business intelligence/analytics for a small cap NYSE traded energy company. He also freelance writes about business and technology, as well as consults SMBs upon Internet marketing strategy.


text:
May 10, 2013
Steamboat Springs Parks, Open Space and Recreational Services employee Jake Girty uses a blower to remove debris from Simillion Field on Friday morning. Girty said city employees have been busy getting local fields ready for the upcoming season. He said that the city is hoping to open many of the fields for play next week but that anyone interested in using them should call 970-879-4300.
Use the comment form below to begin a discussion about this content.
Requires free registration
Posting comments requires a free account and verification.


text:
Roane County 4-H Club members are in the midst of collecting supplies to be given to the American Red Cross.
The supplies will be distributed across the state to youths affected by disaster.
Supplies the public is encouraged to contribute include 3.5-ounce bar of soap, 2-ounce bottle of shampoo, youth-size toothbrush, .85-ounce toothpaste, washcloth, 5-inch comb, small pack crayons and activity/coloring book.
If you currently subscribe or have subscribed in the past to the Roane County News, then simply find your account number on your mailing label and enter it below.
Click the question mark below to see where your account ID appears on your mailing label.
If you are new to the award winning Roane County News and wish to get a subscription or simply gain access to our online content then please enter your ZIP code below and continue to setup your account.
ZIP Code: | |